| 335 | } |
| 336 | |
| 337 | void CaptureDialog::vulkanLayerWarn_mouseClick() |
| 338 | { |
| 339 | QString caption = tr("Configure Vulkan layer settings in registry?"); |
| 340 | |
| 341 | VulkanLayerRegistrationInfo info; |
| 342 | |
| 343 | RENDERDOC_NeedVulkanLayerRegistration(&info); |
| 344 | |
| 345 | const bool hasOtherJSON = bool(info.flags & VulkanLayerFlags::OtherInstallsRegistered); |
| 346 | const bool thisRegistered = bool(info.flags & VulkanLayerFlags::ThisInstallRegistered); |
| 347 | const bool needElevation = bool(info.flags & VulkanLayerFlags::NeedElevation); |
| 348 | const bool userRegisterable = bool(info.flags & VulkanLayerFlags::UserRegisterable); |
| 349 | const bool registerAll = bool(info.flags & VulkanLayerFlags::RegisterAll); |
| 350 | const bool updateAllowed = bool(info.flags & VulkanLayerFlags::UpdateAllowed); |
| 351 | |
| 352 | if(info.flags & VulkanLayerFlags::Unfixable) |
| 353 | { |
| 354 | QString msg = |
| 355 | tr("There is an unfixable problem with your vulkan layer configuration.\n\n" |
| 356 | "This is most commonly caused by having a distribution-provided package of RenderDoc " |
| 357 | "installed, which cannot be modified by another build of RenderDoc.\n\n" |
| 358 | "Please consult the RenderDoc documentation, or package/distribution documentation on " |
| 359 | "linux. "); |
| 360 | |
| 361 | if(info.otherJSONs.size() > 1) |
| 362 | msg += tr("Conflicting manifests:\n\n"); |
| 363 | else |
| 364 | msg += tr("Conflicting manifest:\n\n"); |
| 365 | |
| 366 | for(const rdcstr &j : info.otherJSONs) |
| 367 | msg += j + lit("\n"); |
| 368 | |
| 369 | RDDialog::critical(this, tr("Unfixable vulkan layer configuration"), msg); |
| 370 | return; |
| 371 | } |
| 372 | |
| 373 | QString msg = |
| 374 | tr("Vulkan capture happens through the API's layer mechanism. RenderDoc has detected that "); |
| 375 | |
| 376 | if(hasOtherJSON) |
| 377 | { |
| 378 | if(info.otherJSONs.size() > 1) |
| 379 | msg += |
| 380 | tr("there are other conflicting RenderDoc builds registered already. They must be " |
| 381 | "disabled so that vulkan programs can be captured without crashes."); |
| 382 | else |
| 383 | msg += |
| 384 | tr("there is another conflicting RenderDoc build registered already. It must be disabled " |
| 385 | "so that vulkan programs can be captured without crashes."); |
| 386 | |
| 387 | if(!thisRegistered) |
| 388 | msg += tr(" Also "); |
| 389 | } |
| 390 | |
| 391 | if(!thisRegistered) |
| 392 | { |
| 393 | msg += |
| 394 | tr("the layer for this installation is not yet registered. This could be due to an " |
nothing calls this directly
no test coverage detected