Mesa (main): radv: track if primitives generated query features are enabled
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jun 9 08:50:08 UTC 2022
Module: Mesa
Branch: main
Commit: dc8cf44f60890c392638d5c6fab4a0001a5c41a2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc8cf44f60890c392638d5c6fab4a0001a5c41a2
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Wed Jun 8 14:27:09 2022 +0200
radv: track if primitives generated query features are enabled
This will be used to conditionally declare the NGG query argument
for NGG VS/TES and also adjust the NGG shaders.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15639>
---
src/amd/vulkan/radv_device.c | 11 +++++++++++
src/amd/vulkan/radv_private.h | 3 +++
2 files changed, 14 insertions(+)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index e3b342b01e2..b3ebe982b99 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -3146,6 +3146,7 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr
bool vs_prologs = false;
bool global_bo_list = false;
bool image_2d_view_of_3d = false;
+ bool primitives_generated_query = false;
/* Check enabled features */
if (pCreateInfo->pEnabledFeatures) {
@@ -3218,6 +3219,14 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr
image_2d_view_of_3d = true;
break;
}
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
+ const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *features = (const void *)ext;
+ if (features->primitivesGeneratedQuery ||
+ features->primitivesGeneratedQueryWithRasterizerDiscard ||
+ features->primitivesGeneratedQueryWithNonZeroStreams)
+ primitives_generated_query = true;
+ break;
+ }
default:
break;
}
@@ -3282,6 +3291,8 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr
device->image_2d_view_of_3d = image_2d_view_of_3d;
+ device->primitives_generated_query = primitives_generated_query;
+
radv_init_shader_arenas(device);
device->overallocation_disallowed = overallocation_disallowed;
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 0d409d49d58..52066f01863 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -854,6 +854,9 @@ struct radv_device {
/* Whether 2D views of 3D image is enabled. */
bool image_2d_view_of_3d;
+ /* Whether primitives generated query features are enabled. */
+ bool primitives_generated_query;
+
/* Whether anisotropy is forced with RADV_TEX_ANISO (-1 is disabled). */
int force_aniso;
More information about the mesa-commit
mailing list