summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_pipe.h
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-07-07 07:15:04 +0200
committerMarek Olšák <[email protected]>2012-07-12 02:08:30 +0200
commit0ea76916e63f8fc556f5e8f5a46c196d317cd5ad (patch)
tree6601131d601467def4ef09a5db80fdb7678c6847 /src/gallium/drivers/r600/r600_pipe.h
parent5ba15d8d38d98cb7b625fa55e7d818ef9c6629ce (diff)
r600g: move CB_TARGET_MASK setup into new cb_misc_state
to remove some overhead from draw_vbo. This is a derived state. BTW, I've got no idea how compute interacts with 3D here, but it should use cb_misc_state, so that 3D and compute don't conflict. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.h')
-rw-r--r--src/gallium/drivers/r600/r600_pipe.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
index 1b3cef1de06..ef27742d872 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -82,6 +82,12 @@ struct r600_db_misc_state {
bool flush_depthstencil_enabled;
};
+struct r600_cb_misc_state {
+ struct r600_atom atom;
+ unsigned blend_colormask; /* 8*4 bits for 8 RGBA colorbuffers */
+ unsigned nr_cbufs;
+};
+
enum r600_pipe_state_id {
R600_PIPE_STATE_BLEND = 0,
R600_PIPE_STATE_BLEND_COLOR,
@@ -280,8 +286,8 @@ struct r600_context {
struct r600_pipe_state *states[R600_PIPE_NSTATES];
struct r600_vertex_element *vertex_elements;
struct pipe_framebuffer_state framebuffer;
- unsigned cb_target_mask;
unsigned fb_cb_shader_mask;
+ unsigned compute_cb_target_mask;
unsigned sx_alpha_test_control;
unsigned cb_shader_mask;
unsigned db_shader_control;
@@ -328,6 +334,7 @@ struct r600_context {
struct r600_command_buffer start_compute_cs_cmd;
struct r600_surface_sync_cmd surface_sync_cmd;
struct r600_atom r6xx_flush_and_inv_cmd;
+ struct r600_cb_misc_state cb_misc_state;
struct r600_db_misc_state db_misc_state;
struct r600_atom vertex_buffer_state;
struct r600_constbuf_state vs_constbuf_state;