From: Jason Ekstrand Date: Fri, 15 Apr 2016 21:53:16 +0000 (-0700) Subject: anv: Advertise vertexPipelineStoresAndAtomics based on scalar stages X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5ec4ecce44cfcce67391a25884bd0ef665957398;p=mesa.git anv: Advertise vertexPipelineStoresAndAtomics based on scalar stages Previously, we just looked at the hardware generation but this meant that if you did INTEL_DEBUG=vec4 on BDW or SKL, you would have advertised but non-working features. --- diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 01d3c996ad2..57c40f53df8 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -385,7 +385,6 @@ void anv_GetPhysicalDeviceFeatures( .textureCompressionBC = true, .occlusionQueryPrecise = true, .pipelineStatisticsQuery = false, - .vertexPipelineStoresAndAtomics = pdevice->info->gen >= 8, .fragmentStoresAndAtomics = true, .shaderTessellationAndGeometryPointSize = true, .shaderImageGatherExtended = true, @@ -406,6 +405,11 @@ void anv_GetPhysicalDeviceFeatures( .variableMultisampleRate = false, .inheritedQueries = false, }; + + /* We can't do image stores in vec4 shaders */ + pFeatures->vertexPipelineStoresAndAtomics = + !pdevice->compiler->scalar_stage[MESA_SHADER_VERTEX] && + !pdevice->compiler->scalar_stage[MESA_SHADER_GEOMETRY]; } void