vulkan_common: blacklist radv from extended_dynamic_state2 on drivers before 22.3.1
This commit is contained in:
		| @@ -94,7 +94,8 @@ StagingBufferPool::StagingBufferPool(const Device& device_, MemoryAllocator& mem | |||||||
|         .flags = 0, |         .flags = 0, | ||||||
|         .size = STREAM_BUFFER_SIZE, |         .size = STREAM_BUFFER_SIZE, | ||||||
|         .usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | |         .usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | | ||||||
|                  VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT , |                  VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | | ||||||
|  |                  VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT, | ||||||
|         .sharingMode = VK_SHARING_MODE_EXCLUSIVE, |         .sharingMode = VK_SHARING_MODE_EXCLUSIVE, | ||||||
|         .queueFamilyIndexCount = 0, |         .queueFamilyIndexCount = 0, | ||||||
|         .pQueueFamilyIndices = nullptr, |         .pQueueFamilyIndices = nullptr, | ||||||
| @@ -253,7 +254,8 @@ StagingBufferRef StagingBufferPool::CreateStagingBuffer(size_t size, MemoryUsage | |||||||
|         .size = 1ULL << log2, |         .size = 1ULL << log2, | ||||||
|         .usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | |         .usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | | ||||||
|                  VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | |                  VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | | ||||||
|                  VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT , |                  VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | | ||||||
|  |                  VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT, | ||||||
|         .sharingMode = VK_SHARING_MODE_EXCLUSIVE, |         .sharingMode = VK_SHARING_MODE_EXCLUSIVE, | ||||||
|         .queueFamilyIndexCount = 0, |         .queueFamilyIndexCount = 0, | ||||||
|         .pQueueFamilyIndices = nullptr, |         .pQueueFamilyIndices = nullptr, | ||||||
|   | |||||||
| @@ -796,6 +796,16 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||||||
|             ext_vertex_input_dynamic_state = false; |             ext_vertex_input_dynamic_state = false; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |     if (ext_extended_dynamic_state_2 && is_radv) { | ||||||
|  |         const u32 version = (properties.driverVersion << 3) >> 3; | ||||||
|  |         if (version < VK_MAKE_API_VERSION(0, 22, 3, 1)) { | ||||||
|  |             LOG_WARNING( | ||||||
|  |                 Render_Vulkan, | ||||||
|  |                 "RADV versions older than 22.3.1 have broken VK_EXT_extended_dynamic_state2"); | ||||||
|  |             ext_extended_dynamic_state_2 = false; | ||||||
|  |             ext_extended_dynamic_state_2_extra = false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|     sets_per_pool = 64; |     sets_per_pool = 64; | ||||||
|  |  | ||||||
|     const bool is_amd = |     const bool is_amd = | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user