[Mesa-dev] [PATCH] radv: enable VK_AMD_negative_viewport_height
Samuel Pitoiset
samuel.pitoiset at gmail.com
Mon Mar 19 14:48:21 UTC 2018
This one is similar to the negative viewport height feature
introduced by VK_KHR_maintenance1. Though, both extensions
can't be enabled at the same time.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/amd/vulkan/radv_device.c | 21 +++++++++++++++++++++
src/amd/vulkan/radv_extensions.py | 1 +
2 files changed, 22 insertions(+)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 36ba0c3833..5ceabeda93 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -1191,6 +1191,16 @@ static int radv_get_device_extension_index(const char *name)
return -1;
}
+static bool radv_is_device_extension_enabled(struct radv_device *device,
+ const char *name)
+{
+ int index = radv_get_device_extension_index(name);
+
+ if (index < 0)
+ return false;
+ return device->enabled_extensions.extensions[index];
+}
+
VkResult radv_CreateDevice(
VkPhysicalDevice physicalDevice,
const VkDeviceCreateInfo* pCreateInfo,
@@ -1243,6 +1253,17 @@ VkResult radv_CreateDevice(
device->enabled_extensions.extensions[index] = true;
}
+ /* From Vulkan 1.0.69 spec:
+ *
+ * "ppEnabledExtensionNames must not contain both VK_KHR_maintenance1
+ * and VK_AMD_negative_viewport_height"
+ */
+ if (radv_is_device_extension_enabled(device, "VK_KHR_maintenance1") &&
+ radv_is_device_extension_enabled(device, "VK_AMD_negative_viewport_height")) {
+ assert(!"ppEnabledExtensionNames must not contain both "
+ "VK_KHR_maintenance1 and VK_AMD_negative_viewport_height");
+ }
+
keep_shader_info = device->enabled_extensions.AMD_shader_info;
mtx_init(&device->shader_slab_mutex, mtx_plain);
diff --git a/src/amd/vulkan/radv_extensions.py b/src/amd/vulkan/radv_extensions.py
index bfee1f76fa..13fb40945d 100644
--- a/src/amd/vulkan/radv_extensions.py
+++ b/src/amd/vulkan/radv_extensions.py
@@ -92,6 +92,7 @@ EXTENSIONS = [
Extension('VK_EXT_global_priority', 1, 'device->rad_info.has_ctx_priority'),
Extension('VK_AMD_draw_indirect_count', 1, True),
Extension('VK_AMD_gcn_shader', 1, True),
+ Extension('VK_AMD_negative_viewport_height', 1, True),
Extension('VK_AMD_rasterization_order', 1, 'device->rad_info.chip_class >= VI && device->rad_info.max_se >= 2'),
Extension('VK_AMD_shader_info', 1, True),
]
--
2.16.2
More information about the mesa-dev
mailing list