mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 07:20:16 +01:00
glsl: Expose pack/unpack built-ins for ARB_gpu_shader5.
ARB_gpu_shader5 and ES 3.0 expose different subsets of ARB_shading_language_packing. Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
651b8baa82
commit
7988b4804f
1 changed files with 21 additions and 13 deletions
|
|
@ -193,13 +193,6 @@ shader_integer_mix(const _mesa_glsl_parse_state *state)
|
|||
return v130(state) && state->EXT_shader_integer_mix_enable;
|
||||
}
|
||||
|
||||
static bool
|
||||
shader_packing(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->ARB_shading_language_packing_enable ||
|
||||
state->is_version(400, 0);
|
||||
}
|
||||
|
||||
static bool
|
||||
shader_packing_or_es3(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
|
|
@ -207,12 +200,27 @@ shader_packing_or_es3(const _mesa_glsl_parse_state *state)
|
|||
state->is_version(400, 300);
|
||||
}
|
||||
|
||||
static bool
|
||||
shader_packing_or_es3_or_gpu_shader5(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->ARB_shading_language_packing_enable ||
|
||||
state->ARB_gpu_shader5_enable ||
|
||||
state->is_version(400, 300);
|
||||
}
|
||||
|
||||
static bool
|
||||
gpu_shader5(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->is_version(400, 0) || state->ARB_gpu_shader5_enable;
|
||||
}
|
||||
|
||||
static bool
|
||||
shader_packing_or_gpu_shader5(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->ARB_shading_language_packing_enable ||
|
||||
gpu_shader5(state);
|
||||
}
|
||||
|
||||
static bool
|
||||
texture_array_lod(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
|
|
@ -991,14 +999,14 @@ builtin_builder::create_builtins()
|
|||
_uintBitsToFloat(glsl_type::uvec4_type),
|
||||
NULL);
|
||||
|
||||
add_function("packUnorm2x16", _packUnorm2x16(shader_packing_or_es3), NULL);
|
||||
add_function("packUnorm2x16", _packUnorm2x16(shader_packing_or_es3_or_gpu_shader5), NULL);
|
||||
add_function("packSnorm2x16", _packSnorm2x16(shader_packing_or_es3), NULL);
|
||||
add_function("packUnorm4x8", _packUnorm4x8(shader_packing), NULL);
|
||||
add_function("packSnorm4x8", _packSnorm4x8(shader_packing), NULL);
|
||||
add_function("unpackUnorm2x16", _unpackUnorm2x16(shader_packing_or_es3), NULL);
|
||||
add_function("packUnorm4x8", _packUnorm4x8(shader_packing_or_gpu_shader5), NULL);
|
||||
add_function("packSnorm4x8", _packSnorm4x8(shader_packing_or_gpu_shader5), NULL);
|
||||
add_function("unpackUnorm2x16", _unpackUnorm2x16(shader_packing_or_es3_or_gpu_shader5), NULL);
|
||||
add_function("unpackSnorm2x16", _unpackSnorm2x16(shader_packing_or_es3), NULL);
|
||||
add_function("unpackUnorm4x8", _unpackUnorm4x8(shader_packing), NULL);
|
||||
add_function("unpackSnorm4x8", _unpackSnorm4x8(shader_packing), NULL);
|
||||
add_function("unpackUnorm4x8", _unpackUnorm4x8(shader_packing_or_gpu_shader5), NULL);
|
||||
add_function("unpackSnorm4x8", _unpackSnorm4x8(shader_packing_or_gpu_shader5), NULL);
|
||||
add_function("packHalf2x16", _packHalf2x16(shader_packing_or_es3), NULL);
|
||||
add_function("unpackHalf2x16", _unpackHalf2x16(shader_packing_or_es3), NULL);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue