diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2016-02-05 18:39:13 -0800 |
---|---|---|
committer | Jason Ekstrand <jason.ekstrand@intel.com> | 2016-02-09 15:00:17 -0800 |
commit | a37b8110c13bf9e38220d6eb9e531b2acffcb4ed (patch) | |
tree | e83e5555cc44d2545f84be60979603c69f4d3154 /src/mesa/drivers/dri/i965/brw_defines.h | |
parent | 5ec456375e4fdd0b6c7d797f99191044e19ead74 (diff) | |
download | external_mesa3d-a37b8110c13bf9e38220d6eb9e531b2acffcb4ed.zip external_mesa3d-a37b8110c13bf9e38220d6eb9e531b2acffcb4ed.tar.gz external_mesa3d-a37b8110c13bf9e38220d6eb9e531b2acffcb4ed.tar.bz2 |
i965/fs: Add an enum for keeping track of texture instruciton sources
These logical texture instructions can have a *lot* of sources. It's much
safer if we have symbolic names for them.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_defines.h')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_defines.h | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h index 01e0c99..938770f 100644 --- a/src/mesa/drivers/dri/i965/brw_defines.h +++ b/src/mesa/drivers/dri/i965/brw_defines.h @@ -968,19 +968,8 @@ enum opcode { * * LOGICAL opcodes are eventually translated to the matching non-LOGICAL * opcode but instead of taking a single payload blob they expect their - * arguments separately as individual sources: - * - * Source 0: [optional] Texture coordinates. - * Source 1: [optional] Shadow comparitor. - * Source 2: [optional] dPdx if the operation takes explicit derivatives, - * otherwise LOD value. - * Source 3: [optional] dPdy if the operation takes explicit derivatives. - * Source 4: [optional] Sample index. - * Source 5: [optional] MCS data. - * Source 6: [required] Texture sampler. - * Source 7: [optional] Texel offset. - * Source 8: [required] Number of coordinate components (as UD immediate). - * Source 9: [required] Number derivative components (as UD immediate). + * arguments separately as individual sources. The position/ordering of the + * arguments are defined by the enum tex_logical_srcs. */ SHADER_OPCODE_TEX, SHADER_OPCODE_TEX_LOGICAL, @@ -1404,6 +1393,31 @@ enum fb_write_logical_srcs { FB_WRITE_LOGICAL_SRC_COMPONENTS, /* REQUIRED */ }; +enum tex_logical_srcs { + /** Texture coordinates */ + TEX_LOGICAL_SRC_COORDINATE, + /** Shadow comparitor */ + TEX_LOGICAL_SRC_SHADOW_C, + /** dPdx if the operation takes explicit derivatives, otherwise LOD value */ + TEX_LOGICAL_SRC_LOD, + /** dPdy if the operation takes explicit derivatives */ + TEX_LOGICAL_SRC_LOD2, + /** Sample index */ + TEX_LOGICAL_SRC_SAMPLE_INDEX, + /** MCS data */ + TEX_LOGICAL_SRC_MCS, + /** REQUIRED: Texture sampler */ + TEX_LOGICAL_SRC_SAMPLER, + /** Texel offset for gathers */ + TEX_LOGICAL_SRC_OFFSET_VALUE, + /** REQUIRED: Number of coordinate components (as UD immediate) */ + TEX_LOGICAL_SRC_COORD_COMPONENTS, + /** REQUIRED: Number of derivative components (as UD immediate) */ + TEX_LOGICAL_SRC_GRAD_COMPONENTS, + + TEX_LOGICAL_NUM_SRCS, +}; + #ifdef __cplusplus /** * Allow brw_urb_write_flags enums to be ORed together. |