[Mesa-dev] [PATCH 03/17] intel: Disable 64-bit extensions on platforms without 64-bit types
Iago Toral
itoral at igalia.com
Wed Feb 21 10:05:05 UTC 2018
On Tue, 2018-02-20 at 21:15 -0800, Matt Turner wrote:
> Gen11 does not support DF, Q, UQ types in hardware. As a result, we
> have
> to disable some GL extensions until they can be reimplemented.
> ---
> src/intel/common/gen_device_info.c | 3 +++
> src/intel/common/gen_device_info.h | 1 +
> src/mesa/drivers/dri/i965/intel_extensions.c | 9 +++++----
> 3 files changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/src/intel/common/gen_device_info.c
> b/src/intel/common/gen_device_info.c
> index 8bf4b6b9bb0..465d4c783a1 100644
> --- a/src/intel/common/gen_device_info.c
> +++ b/src/intel/common/gen_device_info.c
> @@ -138,6 +138,7 @@ static const struct gen_device_info
> gen_device_info_snb_gt2 = {
> .must_use_separate_stencil = true, \
> .has_llc = true, \
> .has_pln = true, \
> + .has_64bit_types = true, \
> .has_surface_tile_offset = true, \
> .timestamp_frequency = 12500000
>
> @@ -322,6 +323,7 @@ static const struct gen_device_info
> gen_device_info_hsw_gt3 = {
> .has_llc = true, \
> .has_sample_with_hiz = false, \
> .has_pln = true, \
> + .has_64bit_types = true, \
> .supports_simd16_3src = true, \
> .has_surface_tile_offset = true, \
> .max_vs_threads = 504, \
> @@ -756,6 +758,7 @@ static const struct gen_device_info
> gen_device_info_cnl_5x8 = {
> #define GEN11_FEATURES(_gt, _slices, _l3) \
> GEN8_FEATURES, \
> GEN11_HW_INFO, \
> + .has_64bit_types = false, @@ -322,6 +323,7 @@ static
> const struct gen_device_info gen_device_info_hsw_gt3 = {
> \
> .gt = _gt, .num_slices = _slices, .l3_banks = _l3
This seems to only enable 64-bit types on snb_gt2 and hsw_gt3, what
about bdw+ platforms? or ivybridge where we also support fp64?
> static const struct gen_device_info gen_device_info_icl_8x8 = {
> diff --git a/src/intel/common/gen_device_info.h
> b/src/intel/common/gen_device_info.h
> index fd9c17531db..7761eeba7e0 100644
> --- a/src/intel/common/gen_device_info.h
> +++ b/src/intel/common/gen_device_info.h
> @@ -59,6 +59,7 @@ struct gen_device_info
> bool has_llc;
>
> bool has_pln;
> + bool has_64bit_types;
> bool has_compr4;
> bool has_surface_tile_offset;
> bool supports_simd16_3src;
> diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c
> b/src/mesa/drivers/dri/i965/intel_extensions.c
> index cc961e051fd..3f5f4dab411 100644
> --- a/src/mesa/drivers/dri/i965/intel_extensions.c
> +++ b/src/mesa/drivers/dri/i965/intel_extensions.c
> @@ -217,7 +217,7 @@ intelInitExtensions(struct gl_context *ctx)
> ctx->Extensions.ARB_derivative_control = true;
> ctx->Extensions.ARB_framebuffer_no_attachments = true;
> ctx->Extensions.ARB_gpu_shader5 = true;
> - ctx->Extensions.ARB_gpu_shader_fp64 = true;
> + ctx->Extensions.ARB_gpu_shader_fp64 = devinfo-
> >has_64bit_types;
> ctx->Extensions.ARB_shader_atomic_counters = true;
> ctx->Extensions.ARB_shader_atomic_counter_ops = true;
> ctx->Extensions.ARB_shader_clock = true;
> @@ -229,7 +229,7 @@ intelInitExtensions(struct gl_context *ctx)
> ctx->Extensions.ARB_texture_compression_bptc = true;
> ctx->Extensions.ARB_texture_view = true;
> ctx->Extensions.ARB_shader_storage_buffer_object = true;
> - ctx->Extensions.ARB_vertex_attrib_64bit = true;
> + ctx->Extensions.ARB_vertex_attrib_64bit = devinfo-
> >has_64bit_types;
> ctx->Extensions.EXT_shader_samples_identical = true;
> ctx->Extensions.OES_primitive_bounding_box = true;
> ctx->Extensions.OES_texture_buffer = true;
> @@ -279,8 +279,9 @@ intelInitExtensions(struct gl_context *ctx)
> }
>
> if (devinfo->gen >= 8) {
> - ctx->Extensions.ARB_gpu_shader_int64 = true;
> - ctx->Extensions.ARB_shader_ballot = true; /* requires
> ARB_gpu_shader_int64 */
> + ctx->Extensions.ARB_gpu_shader_int64 = devinfo-
> >has_64bit_types;
> + /* requires ARB_gpu_shader_int64 */
> + ctx->Extensions.ARB_shader_ballot = devinfo->has_64bit_types;
> ctx->Extensions.ARB_ES3_2_compatibility = true;
> }
>
More information about the mesa-dev
mailing list