summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_pipe.h
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-09-18 19:42:29 +0200
committerMarek Olšák <[email protected]>2012-09-22 00:31:58 +0200
commitc8b06dccff9cb89e20378664f3cbc202876a180f (patch)
tree33346783d2ab15087f82509b4d2f61644f757592 /src/gallium/drivers/r600/r600_pipe.h
parentb6521801070d52bdd5908824e82c1ce2dde16e8e (diff)
r600g: atomize framebuffer state
Tested on RS880, Evergreen and Cayman. Reviewed-by: Alex Deucher <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.h')
-rw-r--r--src/gallium/drivers/r600/r600_pipe.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
index 99c9e144da8..979cb438938 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -35,7 +35,7 @@
#include "r600_resource.h"
#include "evergreen_compute.h"
-#define R600_NUM_ATOMS 28
+#define R600_NUM_ATOMS 29
#define R600_MAX_CONST_BUFFERS 2
#define R600_MAX_CONST_BUFFER_SIZE 4096
@@ -126,6 +126,16 @@ struct r600_cs_shader_state {
struct r600_pipe_compute *shader;
};
+struct r600_framebuffer {
+ struct r600_atom atom;
+ struct pipe_framebuffer_state state;
+ unsigned compressed_cb_mask;
+ unsigned nr_samples;
+ bool export_16bpc;
+ bool cb0_is_integer;
+ bool is_msaa_resolve;
+};
+
struct r600_sample_mask {
struct r600_atom atom;
uint16_t sample_mask; /* there are only 8 bits on EG, 16 bits on Cayman */
@@ -153,7 +163,6 @@ enum r600_pipe_state_id {
R600_PIPE_STATE_BLEND = 0,
R600_PIPE_STATE_SCISSOR,
R600_PIPE_STATE_RASTERIZER,
- R600_PIPE_STATE_FRAMEBUFFER,
R600_PIPE_STATE_DSA,
R600_PIPE_STATE_POLYGON_OFFSET,
R600_PIPE_STATE_FETCH_SHADER,
@@ -355,6 +364,7 @@ struct r600_context {
enum radeon_family family;
enum chip_class chip_class;
boolean has_vertex_cache;
+ boolean keep_tiling_flags;
unsigned r6xx_num_clause_temp_gprs;
void *custom_dsa_flush;
void *custom_blend_resolve;
@@ -364,8 +374,6 @@ struct r600_context {
struct radeon_winsys *ws;
struct r600_pipe_state *states[R600_PIPE_NSTATES];
struct r600_vertex_element *vertex_elements;
- struct pipe_framebuffer_state framebuffer;
- unsigned compressed_cb_mask;
unsigned compute_cb_target_mask;
unsigned db_shader_control;
unsigned pa_sc_line_stipple;
@@ -383,11 +391,8 @@ struct r600_context {
boolean spi_dirty;
unsigned sprite_coord_enable;
boolean flatshade;
- boolean export_16bpc;
- unsigned nr_cbufs;
bool alpha_to_one;
bool multisample_enable;
- bool cb0_is_integer;
struct u_upload_mgr *uploader;
struct util_slab_mempool pool_transfers;
@@ -409,6 +414,7 @@ struct r600_context {
struct r600_clip_misc_state clip_misc_state;
struct r600_clip_state clip_state;
struct r600_db_misc_state db_misc_state;
+ struct r600_framebuffer framebuffer;
struct r600_seamless_cube_map seamless_cube_map;
struct r600_stencil_ref_state stencil_ref;
struct r600_vgt_state vgt_state;