mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 23:40:12 +01:00
gallium: Add PIPE_SHADER_CAP_FP16
Denotes native half precision float operations capability
v2: PIPE_CAP_HALFS -> PIPE_SHADER_CAP_FP16
fix indentation
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
1a994b053d
commit
7b2c5547c3
16 changed files with 27 additions and 0 deletions
|
|
@ -118,6 +118,8 @@ gallivm_get_shader_param(enum pipe_shader_cap param)
|
|||
return 1;
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
return 1;
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
return PIPE_MAX_SAMPLERS;
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
|
|
|
|||
|
|
@ -511,6 +511,8 @@ tgsi_exec_get_shader_param(enum pipe_shader_cap param)
|
|||
return 1;
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
return 1;
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
return PIPE_MAX_SAMPLERS;
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
|
|
|
|||
|
|
@ -472,6 +472,8 @@ MOV OUT[0], CONST[0][3] # copy vector 3 of constbuf 0
|
|||
BGNSUB, ENDSUB, CAL, and RET, including RET in the main block.
|
||||
* ``PIPE_SHADER_CAP_INTEGERS``: Whether integer opcodes are supported.
|
||||
If unsupported, only float opcodes are supported.
|
||||
* ``PIPE_SHADER_CAP_FP16``: Whether half precision floating-point opcodes are supported.
|
||||
If unsupported, half precision ops need to be lowered to full precision.
|
||||
* ``PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS``: The maximum number of texture
|
||||
samplers.
|
||||
* ``PIPE_SHADER_CAP_PREFERRED_IR``: Preferred representation of the
|
||||
|
|
|
|||
|
|
@ -428,6 +428,7 @@ etna_screen_get_shader_param(struct pipe_screen *pscreen,
|
|||
case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED:
|
||||
return VIV_FEATURE(screen, chipMinorFeatures0, HAS_SQRT_TRIG);
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
|
|
|
|||
|
|
@ -527,6 +527,8 @@ fd_screen_get_shader_param(struct pipe_screen *pscreen,
|
|||
if (glsl120)
|
||||
return 0;
|
||||
return is_ir3(screen) ? 1 : 0;
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
return 16;
|
||||
|
|
|
|||
|
|
@ -157,6 +157,7 @@ i915_get_shader_param(struct pipe_screen *screen,
|
|||
case PIPE_SHADER_CAP_SUBROUTINES:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
|
|
|
|||
|
|
@ -314,6 +314,7 @@ nv30_screen_get_shader_param(struct pipe_screen *pscreen,
|
|||
case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
|
||||
case PIPE_SHADER_CAP_SUBROUTINES:
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_DFRACEXP_DLDEXP_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
|
||||
|
|
@ -362,6 +363,7 @@ nv30_screen_get_shader_param(struct pipe_screen *pscreen,
|
|||
case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
|
||||
case PIPE_SHADER_CAP_SUBROUTINES:
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_DFRACEXP_DLDEXP_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
|
||||
|
|
|
|||
|
|
@ -345,6 +345,7 @@ nv50_screen_get_shader_param(struct pipe_screen *pscreen,
|
|||
return 1;
|
||||
case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED:
|
||||
return 1;
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
case PIPE_SHADER_CAP_SUBROUTINES:
|
||||
return 0; /* please inline, or provide function declarations */
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
|
|
|
|||
|
|
@ -405,6 +405,7 @@ nvc0_screen_get_shader_param(struct pipe_screen *pscreen,
|
|||
case PIPE_SHADER_CAP_TGSI_DFRACEXP_DLDEXP_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE:
|
||||
case PIPE_SHADER_CAP_LOWER_IF_THRESHOLD:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
|
||||
return NVC0_MAX_BUFFERS;
|
||||
|
|
|
|||
|
|
@ -354,6 +354,7 @@ static int r300_get_shader_param(struct pipe_screen *pscreen,
|
|||
case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
|
||||
case PIPE_SHADER_CAP_SUBROUTINES:
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_DFRACEXP_DLDEXP_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
|
||||
|
|
@ -413,6 +414,7 @@ static int r300_get_shader_param(struct pipe_screen *pscreen,
|
|||
case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
|
||||
case PIPE_SHADER_CAP_SUBROUTINES:
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED:
|
||||
|
|
|
|||
|
|
@ -570,6 +570,7 @@ static int r600_get_shader_param(struct pipe_screen* pscreen,
|
|||
case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
|
||||
return 1;
|
||||
case PIPE_SHADER_CAP_SUBROUTINES:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE:
|
||||
|
|
|
|||
|
|
@ -742,6 +742,7 @@ static int si_get_shader_param(struct pipe_screen* pscreen,
|
|||
case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
|
||||
case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE:
|
||||
case PIPE_SHADER_CAP_TGSI_SKIP_MERGE_REGISTERS:
|
||||
|
|
|
|||
|
|
@ -519,6 +519,8 @@ vgpu9_get_shader_param(struct pipe_screen *screen,
|
|||
return 0;
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
return 16;
|
||||
|
|
@ -580,6 +582,8 @@ vgpu9_get_shader_param(struct pipe_screen *screen,
|
|||
return 0;
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return 0;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
return 0;
|
||||
|
|
@ -675,6 +679,8 @@ vgpu10_get_shader_param(struct pipe_screen *screen,
|
|||
case PIPE_SHADER_CAP_SUBROUTINES:
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
return TRUE;
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
return FALSE;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
return SVGA3D_DX_MAX_SAMPLERS;
|
||||
|
|
|
|||
|
|
@ -407,6 +407,7 @@ vc4_screen_get_shader_param(struct pipe_screen *pscreen,
|
|||
return 0;
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
return 1;
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_DFRACEXP_DLDEXP_SUPPORTED:
|
||||
case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
|
||||
|
|
|
|||
|
|
@ -335,6 +335,7 @@ virgl_get_shader_param(struct pipe_screen *screen,
|
|||
return 4096 * sizeof(float[4]);
|
||||
case PIPE_SHADER_CAP_LOWER_IF_THRESHOLD:
|
||||
case PIPE_SHADER_CAP_TGSI_SKIP_MERGE_REGISTERS:
|
||||
case PIPE_SHADER_CAP_FP16:
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -832,6 +832,7 @@ enum pipe_shader_cap
|
|||
PIPE_SHADER_CAP_INDIRECT_CONST_ADDR,
|
||||
PIPE_SHADER_CAP_SUBROUTINES, /* BGNSUB, ENDSUB, CAL, RET */
|
||||
PIPE_SHADER_CAP_INTEGERS,
|
||||
PIPE_SHADER_CAP_FP16,
|
||||
PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS,
|
||||
PIPE_SHADER_CAP_PREFERRED_IR,
|
||||
PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue