diff options
author | Keith Whitwell <keithw@vmware.com> | 2009-11-10 18:07:11 -0800 |
---|---|---|
committer | Keith Whitwell <keithw@vmware.com> | 2009-11-11 18:51:58 -0800 |
commit | 2f54d02d205468a840b35a3554f2ad8ffc31ec9c (patch) | |
tree | ac443da5e09a40acf67fa83905f6494e82685207 /src/gallium/drivers/i965/brw_context.h | |
parent | 0c547d63c497f06c38f7a3c000e478bdcf2594b6 (diff) |
i965g: consult fs inputs when laying out vs output regs
Vertex shader now emits just the FS inputs, in the positions and order
expected by the fragment shader.
This means potentially regenerating the vertex shader to match
different fragment shader's input layouts.
Diffstat (limited to 'src/gallium/drivers/i965/brw_context.h')
-rw-r--r-- | src/gallium/drivers/i965/brw_context.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/i965/brw_context.h b/src/gallium/drivers/i965/brw_context.h index 4a975ecd7e..31f3cf3685 100644 --- a/src/gallium/drivers/i965/brw_context.h +++ b/src/gallium/drivers/i965/brw_context.h @@ -161,11 +161,24 @@ struct brw_vertex_shader { GLboolean use_const_buffer; }; +struct brw_fs_signature { + GLuint nr_inputs; + struct { + GLuint semantic:5; + GLuint semantic_index:27; + } input[PIPE_MAX_SHADER_INPUTS]; +}; + +#define brw_fs_signature_size(s) (offsetof(struct brw_fs_signature, input) + \ + ((s)->nr_inputs * sizeof (s)->input[0])) + struct brw_fragment_shader { const struct tgsi_token *tokens; struct tgsi_shader_info info; + struct brw_fs_signature signature; + unsigned iz_lookup; //unsigned wm_lookup; |