diff options
author | Marek Olšák <[email protected]> | 2012-10-05 04:59:50 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-10-10 00:16:42 +0200 |
commit | ab075de53baa9829780cc133e5ac06e5498a763c (patch) | |
tree | 13c225c22cd40002dc2dbf3c557ac1e66b71b3d8 /src/gallium/drivers/r600/r600_pipe.h | |
parent | a50edc8ed84c4c48c0dc8e1a079e8d5e8f1c3a0e (diff) |
r600g: atomize polygon offset state
POLY_OFFSET_DB_FMT_CNTL is moved to the framebuffer state, because it only
depends on the zbuffer format.
Reviewed-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.h')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index a510baf93ad..a548846beef 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 31 +#define R600_NUM_ATOMS 32 #define R600_MAX_CONST_BUFFERS 2 #define R600_MAX_CONST_BUFFER_SIZE 4096 @@ -164,7 +164,6 @@ enum r600_pipe_state_id { R600_PIPE_STATE_SCISSOR, R600_PIPE_STATE_RASTERIZER, R600_PIPE_STATE_DSA, - R600_PIPE_STATE_POLYGON_OFFSET, R600_PIPE_NSTATES }; @@ -217,10 +216,18 @@ struct r600_pipe_rasterizer { unsigned pa_cl_clip_cntl; float offset_units; float offset_scale; + bool offset_enable; bool scissor_enable; bool multisample_enable; }; +struct r600_poly_offset_state { + struct r600_atom atom; + enum pipe_format zs_format; + float offset_units; + float offset_scale; +}; + struct r600_blend_state { struct r600_command_buffer buffer; struct r600_command_buffer buffer_no_blend; @@ -411,6 +418,7 @@ struct r600_context { struct r600_clip_state clip_state; struct r600_db_misc_state db_misc_state; struct r600_framebuffer framebuffer; + struct r600_poly_offset_state poly_offset_state; struct r600_sample_mask sample_mask; struct r600_seamless_cube_map seamless_cube_map; struct r600_stencil_ref_state stencil_ref; @@ -541,7 +549,6 @@ void evergreen_pipe_shader_vs(struct pipe_context *ctx, struct r600_pipe_shader void *evergreen_create_db_flush_dsa(struct r600_context *rctx); void *evergreen_create_resolve_blend(struct r600_context *rctx); void *evergreen_create_decompress_blend(struct r600_context *rctx); -void evergreen_polygon_offset_update(struct r600_context *rctx); boolean evergreen_is_format_supported(struct pipe_screen *screen, enum pipe_format format, enum pipe_texture_target target, @@ -618,7 +625,6 @@ void *r600_create_db_flush_dsa(struct r600_context *rctx); void *r600_create_resolve_blend(struct r600_context *rctx); void *r700_create_resolve_blend(struct r600_context *rctx); void *r600_create_decompress_blend(struct r600_context *rctx); -void r600_polygon_offset_update(struct r600_context *rctx); void r600_adjust_gprs(struct r600_context *rctx); boolean r600_is_format_supported(struct pipe_screen *screen, enum pipe_format format, |