diff options
author | Christoph Bumiller <[email protected]> | 2013-03-15 22:11:31 +0100 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2013-03-20 12:25:21 +0100 |
commit | 8acaf862dfeac62550514b0e46f5aa6212b08992 (patch) | |
tree | 742186f981a608ef42f62aff6271aeec6451b7bc /src/gallium/include | |
parent | 3eaf823b9086ae400a000a1f639e74d2f2be9166 (diff) |
gallium: add TGSI_SEMANTIC_TEXCOORD,PCOORD v3
This makes it possible to identify gl_TexCoord and gl_PointCoord
for drivers where sprite coordinate replacement is restricted.
The new PIPE_CAP_TGSI_TEXCOORD decides whether these varyings
should be hidden behind the GENERIC semantic or not.
With this patch only nvc0 and nv30 will request that they be used.
v2: introduce a CAP so other drivers don't have to bother with
the new semantic
v3: adapt to introduction gl_varying_slot enum
Diffstat (limited to 'src/gallium/include')
-rw-r--r-- | src/gallium/include/pipe/p_defines.h | 3 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_shader_tokens.h | 4 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_state.h | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index fdf6e7fb17b..7f20b992a13 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -498,7 +498,8 @@ enum pipe_cap { PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT = 75, PIPE_CAP_CUBE_MAP_ARRAY = 76, PIPE_CAP_TEXTURE_BUFFER_OBJECTS = 77, - PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 78 + PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 78, + PIPE_CAP_TGSI_TEXCOORD = 79 }; /** diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h index 1ca46fd0206..478ce25f57c 100644 --- a/src/gallium/include/pipe/p_shader_tokens.h +++ b/src/gallium/include/pipe/p_shader_tokens.h @@ -162,7 +162,9 @@ struct tgsi_declaration_interp #define TGSI_SEMANTIC_BLOCK_ID 16 /**< id of the current block */ #define TGSI_SEMANTIC_BLOCK_SIZE 17 /**< block size in threads */ #define TGSI_SEMANTIC_THREAD_ID 18 /**< block-relative id of the current thread */ -#define TGSI_SEMANTIC_COUNT 19 /**< number of semantic values */ +#define TGSI_SEMANTIC_TEXCOORD 19 /**< texture or sprite coordinates */ +#define TGSI_SEMANTIC_PCOORD 20 /**< point sprite coordinate */ +#define TGSI_SEMANTIC_COUNT 21 /**< number of semantic values */ struct tgsi_declaration_semantic { diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index ab49cabb800..dfafd0bb99f 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -145,7 +145,7 @@ struct pipe_rasterizer_state unsigned line_stipple_factor:8; /**< [1..256] actually */ unsigned line_stipple_pattern:16; - unsigned sprite_coord_enable; /* bitfield referring to 32 GENERIC inputs */ + uint32_t sprite_coord_enable; /* referring to 32 TEXCOORD/GENERIC inputs */ float line_width; float point_size; /**< used when no per-vertex size */ |