OSDN Git Service

radeonsi: pack si_framebuffer better
authorMarek Olšák <marek.olsak@amd.com>
Fri, 9 Jun 2017 17:51:36 +0000 (19:51 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 12 Jun 2017 16:24:37 +0000 (18:24 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeon/r600_pipe_common.h
src/gallium/drivers/radeon/r600_texture.c
src/gallium/drivers/radeonsi/si_pipe.h

index 84d38fb..56056fa 100644 (file)
@@ -842,7 +842,7 @@ void vi_dcc_clear_level(struct r600_common_context *rctx,
 void evergreen_do_fast_color_clear(struct r600_common_context *rctx,
                                   struct pipe_framebuffer_state *fb,
                                   struct r600_atom *fb_state,
-                                  unsigned *buffers, unsigned *dirty_cbufs,
+                                  unsigned *buffers, ubyte *dirty_cbufs,
                                   const union pipe_color_union *color);
 bool r600_texture_disable_dcc(struct r600_common_context *rctx,
                              struct r600_texture *rtex);
index 32275b1..25abdd6 100644 (file)
@@ -2628,7 +2628,7 @@ static void si_set_optimal_micro_tile_mode(struct r600_common_screen *rscreen,
 void evergreen_do_fast_color_clear(struct r600_common_context *rctx,
                                   struct pipe_framebuffer_state *fb,
                                   struct r600_atom *fb_state,
-                                  unsigned *buffers, unsigned *dirty_cbufs,
+                                  unsigned *buffers, ubyte *dirty_cbufs,
                                   const union pipe_color_union *color)
 {
        int i;
index 55fda4d..388f6e0 100644 (file)
@@ -166,17 +166,17 @@ struct si_images_info {
 struct si_framebuffer {
        struct r600_atom                atom;
        struct pipe_framebuffer_state   state;
-       unsigned                        nr_samples;
-       unsigned                        log_samples;
-       unsigned                        compressed_cb_mask;
        unsigned                        colorbuf_enabled_4bit;
        unsigned                        spi_shader_col_format;
        unsigned                        spi_shader_col_format_alpha;
        unsigned                        spi_shader_col_format_blend;
        unsigned                        spi_shader_col_format_blend_alpha;
-       unsigned                        color_is_int8;
-       unsigned                        color_is_int10;
-       unsigned                        dirty_cbufs;
+       ubyte                           nr_samples:5; /* at most 16xAA */
+       ubyte                           log_samples:3; /* at most 4 = 16xAA */
+       ubyte                           compressed_cb_mask;
+       ubyte                           color_is_int8;
+       ubyte                           color_is_int10;
+       ubyte                           dirty_cbufs;
        bool                            dirty_zsbuf;
        bool                            any_dst_linear;
        bool                            do_update_surf_dirtiness;