[Mesa-dev] [PATCH 1/2] spirv: Sort supported capabilities

Caio Marcelo de Oliveira Filho caio.oliveira at intel.com
Mon Jan 7 17:31:04 UTC 2019


This and the other patch are

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>



On Mon, Jan 07, 2019 at 10:53:09AM -0600, Jason Ekstrand wrote:
> ---
>  src/amd/vulkan/radv_shader.c            | 24 ++++++++---------
>  src/compiler/shader_info.h              | 34 ++++++++++++-------------
>  src/intel/vulkan/anv_pipeline.c         | 18 ++++++-------
>  src/mesa/drivers/dri/i965/brw_context.c | 10 ++++----
>  4 files changed, 43 insertions(+), 43 deletions(-)
> 
> diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
> index 7ad9abe8df8..7220738c7c8 100644
> --- a/src/amd/vulkan/radv_shader.c
> +++ b/src/amd/vulkan/radv_shader.c
> @@ -220,32 +220,32 @@ radv_shader_compile_to_nir(struct radv_device *device,
>  		}
>  		const struct spirv_to_nir_options spirv_options = {
>  			.caps = {
> +				.descriptor_array_dynamic_indexing = true,
>  				.device_group = true,
>  				.draw_parameters = true,
>  				.float64 = true,
> +				.gcn_shader = true,
> +				.geometry_streams = true,
>  				.image_read_without_format = true,
>  				.image_write_without_format = true,
> -				.tessellation = true,
> -				.int64 = true,
>  				.int16 = true,
> +				.int64 = true,
>  				.multiview = true,
> +				.runtime_descriptor_array = true,
> +				.shader_viewport_index_layer = true,
> +				.stencil_export = true,
> +				.storage_16bit = true,
> +				.storage_image_ms = true,
>  				.subgroup_arithmetic = true,
>  				.subgroup_ballot = true,
>  				.subgroup_basic = true,
>  				.subgroup_quad = true,
>  				.subgroup_shuffle = true,
>  				.subgroup_vote = true,
> -				.variable_pointers = true,
> -				.gcn_shader = true,
> -				.trinary_minmax = true,
> -				.shader_viewport_index_layer = true,
> -				.descriptor_array_dynamic_indexing = true,
> -				.runtime_descriptor_array = true,
> -				.stencil_export = true,
> -				.storage_16bit = true,
> -				.geometry_streams = true,
> +				.tessellation = true,
>  				.transform_feedback = true,
> -				.storage_image_ms = true,
> +				.trinary_minmax = true,
> +				.variable_pointers = true,
>  			},
>  		};
>  		entry_point = spirv_to_nir(spirv, module->size / 4,
> diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h
> index 05f37c8d197..dc47cd7656d 100644
> --- a/src/compiler/shader_info.h
> +++ b/src/compiler/shader_info.h
> @@ -33,38 +33,38 @@ extern "C" {
>  #endif
>  
>  struct spirv_supported_capabilities {
> -   bool float64;
> -   bool image_ms_array;
> -   bool tessellation;
> +   bool atomic_storage;
> +   bool descriptor_array_dynamic_indexing;
>     bool device_group;
>     bool draw_parameters;
> +   bool float64;
> +   bool geometry_streams;
> +   bool gcn_shader;
> +   bool image_ms_array;
>     bool image_read_without_format;
>     bool image_write_without_format;
> +   bool int16;
>     bool int64;
> +   bool int64_atomics;
>     bool min_lod;
>     bool multiview;
> -   bool variable_pointers;
> -   bool storage_16bit;
> -   bool int16;
> +   bool post_depth_coverage;
> +   bool runtime_descriptor_array;
>     bool shader_viewport_index_layer;
> +   bool stencil_export;
> +   bool storage_8bit;
> +   bool storage_16bit;
> +   bool storage_image_ms;
>     bool subgroup_arithmetic;
>     bool subgroup_ballot;
>     bool subgroup_basic;
>     bool subgroup_quad;
>     bool subgroup_shuffle;
>     bool subgroup_vote;
> -   bool gcn_shader;
> -   bool trinary_minmax;
> -   bool descriptor_array_dynamic_indexing;
> -   bool runtime_descriptor_array;
> -   bool stencil_export;
> -   bool atomic_storage;
> -   bool storage_8bit;
> -   bool post_depth_coverage;
> +   bool tessellation;
>     bool transform_feedback;
> -   bool geometry_streams;
> -   bool int64_atomics;
> -   bool storage_image_ms;
> +   bool trinary_minmax;
> +   bool variable_pointers;
>  };
>  
>  typedef struct shader_info {
> diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
> index 6db9945e0d4..a9ae379967b 100644
> --- a/src/intel/vulkan/anv_pipeline.c
> +++ b/src/intel/vulkan/anv_pipeline.c
> @@ -136,27 +136,27 @@ anv_shader_compile_to_nir(struct anv_pipeline *pipeline,
>     struct spirv_to_nir_options spirv_options = {
>        .lower_workgroup_access_to_offsets = true,
>        .caps = {
> -         .float64 = device->instance->physicalDevice.info.gen >= 8,
> -         .int64 = device->instance->physicalDevice.info.gen >= 8,
> -         .tessellation = true,
>           .device_group = true,
>           .draw_parameters = true,
> +         .float64 = device->instance->physicalDevice.info.gen >= 8,
>           .image_write_without_format = true,
> +         .int16 = device->instance->physicalDevice.info.gen >= 8,
> +         .int64 = device->instance->physicalDevice.info.gen >= 8,
>           .min_lod = true,
>           .multiview = true,
> -         .variable_pointers = true,
> -         .storage_16bit = device->instance->physicalDevice.info.gen >= 8,
> -         .int16 = device->instance->physicalDevice.info.gen >= 8,
> +         .post_depth_coverage = device->instance->physicalDevice.info.gen >= 9,
>           .shader_viewport_index_layer = true,
> +         .stencil_export = device->instance->physicalDevice.info.gen >= 9,
> +         .storage_8bit = device->instance->physicalDevice.info.gen >= 8,
> +         .storage_16bit = device->instance->physicalDevice.info.gen >= 8,
>           .subgroup_arithmetic = true,
>           .subgroup_basic = true,
>           .subgroup_ballot = true,
>           .subgroup_quad = true,
>           .subgroup_shuffle = true,
>           .subgroup_vote = true,
> -         .stencil_export = device->instance->physicalDevice.info.gen >= 9,
> -         .storage_8bit = device->instance->physicalDevice.info.gen >= 8,
> -         .post_depth_coverage = device->instance->physicalDevice.info.gen >= 9,
> +         .tessellation = true,
> +         .variable_pointers = true,
>        },
>     };
>  
> diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
> index 6ba64e4e06d..505da9896b3 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.c
> +++ b/src/mesa/drivers/dri/i965/brw_context.c
> @@ -390,15 +390,15 @@ brw_initialize_spirv_supported_capabilities(struct brw_context *brw)
>      */
>     assert(devinfo->gen >= 7);
>  
> +   ctx->Const.SpirVCapabilities.atomic_storage = devinfo->gen >= 7;
> +   ctx->Const.SpirVCapabilities.draw_parameters = true;
>     ctx->Const.SpirVCapabilities.float64 = devinfo->gen >= 8;
> +   ctx->Const.SpirVCapabilities.geometry_streams = devinfo->gen >= 7;
> +   ctx->Const.SpirVCapabilities.image_write_without_format = true;
>     ctx->Const.SpirVCapabilities.int64 = devinfo->gen >= 8;
>     ctx->Const.SpirVCapabilities.tessellation = true;
> -   ctx->Const.SpirVCapabilities.draw_parameters = true;
> -   ctx->Const.SpirVCapabilities.image_write_without_format = true;
> -   ctx->Const.SpirVCapabilities.variable_pointers = true;
> -   ctx->Const.SpirVCapabilities.atomic_storage = devinfo->gen >= 7;
>     ctx->Const.SpirVCapabilities.transform_feedback = devinfo->gen >= 7;
> -   ctx->Const.SpirVCapabilities.geometry_streams = devinfo->gen >= 7;
> +   ctx->Const.SpirVCapabilities.variable_pointers = true;
>  }
>  
>  static void
> -- 
> 2.20.1
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list