Workaround AMD driver crash by disabling rayquery for all AMD cards
This commit is contained in:
parent
4e0d6d5932
commit
98ff358a3a
2 changed files with 12 additions and 4 deletions
|
|
@ -377,8 +377,11 @@ VkRenderPassSetup::VkRenderPassSetup(VulkanRenderDevice* fb, const VkRenderPassK
|
|||
UsePipelineLibrary = device->SupportsExtension(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME) // Is this supported?
|
||||
&& device->EnabledFeatures.GraphicsPipelineLibrary.graphicsPipelineLibrary; // Well yes, but actually no.
|
||||
|
||||
if (!gl_ubershaders)
|
||||
UsePipelineLibrary = false;
|
||||
|
||||
// Precompile material fragment shaders:
|
||||
if (gl_ubershaders)
|
||||
if (UsePipelineLibrary)
|
||||
{
|
||||
VkPipelineKey fkey;
|
||||
fkey.IsGeneralized = true;
|
||||
|
|
@ -479,7 +482,7 @@ VulkanRenderPass *VkRenderPassSetup::GetRenderPass(int clearTargets)
|
|||
|
||||
VulkanPipeline *VkRenderPassSetup::GetPipeline(const VkPipelineKey &key, UniformStructHolder &Uniforms)
|
||||
{
|
||||
if (gl_ubershaders)
|
||||
if (UsePipelineLibrary)
|
||||
{
|
||||
auto data = GetSpecializedPipeline(key);
|
||||
if (!data)
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ CCMD(vk_membudget)
|
|||
if (membudgets[i].budget != 0)
|
||||
{
|
||||
Printf("#%d%s - %d MB used out of %d MB estimated budget (%d%%)\n",
|
||||
i, memheapnames[i].GetChars(),
|
||||
(int)i, memheapnames[i].GetChars(),
|
||||
(int)(membudgets[i].usage / (1024 * 1024)),
|
||||
(int)(membudgets[i].budget / (1024 * 1024)),
|
||||
(int)(membudgets[i].usage * 100 / membudgets[i].budget));
|
||||
|
|
@ -122,7 +122,7 @@ CCMD(vk_membudget)
|
|||
else
|
||||
{
|
||||
Printf("#%d %s - %d MB used\n",
|
||||
i, memheapnames[i].GetChars(),
|
||||
(int)i, memheapnames[i].GetChars(),
|
||||
(int)(membudgets[i].usage / (1024 * 1024)));
|
||||
}
|
||||
}
|
||||
|
|
@ -187,6 +187,11 @@ VulkanRenderDevice::VulkanRenderDevice(void *hMonitor, bool fullscreen, std::sha
|
|||
|
||||
mUseRayQuery = vk_rayquery && mDevice->SupportsExtension(VK_KHR_RAY_QUERY_EXTENSION_NAME) && mDevice->PhysicalDevice.Features.RayQuery.rayQuery;
|
||||
|
||||
// Creating pipelines with rayquery currently crashes the AMD driver
|
||||
// To do: try turn this on once in a while to see if they fixed it as we don't want to permanently gimp AMD card performance
|
||||
if (mDevice->PhysicalDevice.Properties.Properties.vendorID == 0x1002)
|
||||
mUseRayQuery = false;
|
||||
|
||||
mShaderCache = std::make_unique<VkShaderCache>(this);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue