summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/i965/brw_context.h
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2009-11-17 14:46:23 -0800
committerKeith Whitwell <keithw@vmware.com>2009-11-17 14:50:49 -0800
commit1877e6cd2d76143ef8a9c516122afe614ae3b4a4 (patch)
tree857cd3547555a14fe990dacc206234c892b9df1c /src/gallium/drivers/i965/brw_context.h
parentd299ee771b577a8ce839861d1af336fc316e0a1d (diff)
i965g: handle special vs outputs specially
Where vs output semantic tags indicate an output is signficant for fixed function processing (such as clipping, unfilled modes, etc), retain information about that output so that we can get to it easily later on. Fix up the unfilled processing, but hard-wire edgeflag to one for now. With this change, trivial/tri-unfilled works.
Diffstat (limited to 'src/gallium/drivers/i965/brw_context.h')
-rw-r--r--src/gallium/drivers/i965/brw_context.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/gallium/drivers/i965/brw_context.h b/src/gallium/drivers/i965/brw_context.h
index 31f3cf3685..31e04b6e14 100644
--- a/src/gallium/drivers/i965/brw_context.h
+++ b/src/gallium/drivers/i965/brw_context.h
@@ -152,13 +152,23 @@ struct brw_rasterizer_state;
struct brw_vertex_shader {
const struct tgsi_token *tokens;
+ struct brw_winsys_buffer *const_buffer; /** Program constant buffer/surface */
+
struct tgsi_shader_info info;
- unsigned has_flow_control:1;
+ GLuint has_flow_control:1;
+ GLuint use_const_buffer:1;
+
+ /* Offsets of special vertex shader outputs required for clipping.
+ */
+ GLuint output_hpos:6; /* not always zero? */
+ GLuint output_color0:6;
+ GLuint output_color1:6;
+ GLuint output_bfc0:6;
+ GLuint output_bfc1:6;
+ GLuint output_edgeflag:6;
unsigned id;
- struct brw_winsys_buffer *const_buffer; /** Program constant buffer/surface */
- GLboolean use_const_buffer;
};
struct brw_fs_signature {
@@ -317,7 +327,8 @@ struct brw_vs_prog_data {
GLuint nr_params; /**< number of TGSI_FILE_CONSTANT's */
- GLboolean copy_edgeflag;
+ GLuint output_edgeflag;
+
GLboolean writes_psiz;
/* Used for calculating urb partitions: