diff options
author | Jason Ekstrand <[email protected]> | 2019-02-22 10:48:39 -0600 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2019-07-24 12:55:40 -0500 |
commit | c84b8eeeac30ec033847a3e13d05d1162e78daf3 (patch) | |
tree | 2fba023f049627a457343e8664566852f6baee9f /src/intel/compiler/brw_compiler.h | |
parent | 1981460af2c17d55c17be2475a28bbf711a80c79 (diff) |
intel/compiler: Be more conservative about subgroup sizes in GL
The rules for gl_SubgroupSize in Vulkan require that it be a constant
that can be queried through the API. However, all GL requires is that
it's a uniform. Instead of always claiming that the subgroup size in
the shader is 32 in GL like we have to do for Vulkan, claim 8 for
geometry stages, the maximum for fragment shaders, and the actual size
for compute.
Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_compiler.h')
-rw-r--r-- | src/intel/compiler/brw_compiler.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_compiler.h b/src/intel/compiler/brw_compiler.h index 8f8cca79deb..ba95df5b7dc 100644 --- a/src/intel/compiler/brw_compiler.h +++ b/src/intel/compiler/brw_compiler.h @@ -203,9 +203,18 @@ struct brw_sampler_prog_key_data { float scale_factors[32]; }; +/** An enum representing what kind of input gl_SubgroupSize is. */ +enum PACKED brw_subgroup_size_type +{ + BRW_SUBGROUP_SIZE_API_CONSTANT, /**< Vulkan behavior */ + BRW_SUBGROUP_SIZE_UNIFORM, /**< OpenGL behavior */ +}; + struct brw_base_prog_key { unsigned program_string_id; + enum brw_subgroup_size_type subgroup_size_type; + struct brw_sampler_prog_key_data tex; }; |