[Mesa-dev] [PATCH 13/13] radeonsi: pack si_context better

Marek Olšák maraeo at gmail.com
Sat Jun 10 16:39:51 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

there isn't much to gain here
---
 src/gallium/drivers/radeonsi/si_pipe.h | 36 +++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h
index 388f6e0..eef05cf 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.h
+++ b/src/gallium/drivers/radeonsi/si_pipe.h
@@ -230,33 +230,33 @@ union si_vgt_param_key {
 
 struct si_context {
 	struct r600_common_context	b;
 	struct blitter_context		*blitter;
 	void				*custom_dsa_flush;
 	void				*custom_blend_resolve;
 	void				*custom_blend_fmask_decompress;
 	void				*custom_blend_eliminate_fastclear;
 	void				*custom_blend_dcc_decompress;
 	struct si_screen		*screen;
+	LLVMTargetMachineRef		tm; /* only non-threaded compilation */
+	struct si_shader_ctx_state	fixed_func_tcs_shader;
 
 	struct radeon_winsys_cs		*ce_ib;
 	struct radeon_winsys_cs		*ce_preamble_ib;
 	struct r600_resource		*ce_ram_saved_buffer;
-	unsigned			ce_ram_saved_offset;
-	unsigned			total_ce_ram_allocated;
-	bool				ce_need_synchronization;
 	struct u_suballocator		*ce_suballocator;
+	unsigned			ce_ram_saved_offset;
+	uint16_t			total_ce_ram_allocated;
+	bool				ce_need_synchronization:1;
 
-	struct si_shader_ctx_state	fixed_func_tcs_shader;
-	LLVMTargetMachineRef		tm; /* only non-threaded compilation */
-	bool				gfx_flush_in_progress;
-	bool				compute_is_busy;
+	bool				gfx_flush_in_progress:1;
+	bool				compute_is_busy:1;
 
 	/* Atoms (direct states). */
 	union si_state_atoms		atoms;
 	unsigned			dirty_atoms; /* mask */
 	/* PM4 states (precomputed immutable states) */
 	unsigned			dirty_states;
 	union si_state			queued;
 	union si_state			emitted;
 
 	/* Atom declarations. */
@@ -320,49 +320,49 @@ struct si_context {
 	/* Vertex and index buffers. */
 	bool				vertex_buffers_dirty;
 	bool				vertex_buffer_pointer_dirty;
 	struct pipe_vertex_buffer	vertex_buffer[SI_NUM_VERTEX_BUFFERS];
 
 	/* MSAA config state. */
 	int				ps_iter_samples;
 	bool				smoothing_enabled;
 
 	/* DB render state. */
-	bool			dbcb_depth_copy_enabled;
-	bool			dbcb_stencil_copy_enabled;
-	unsigned		dbcb_copy_sample;
-	bool			db_flush_depth_inplace;
-	bool			db_flush_stencil_inplace;
-	bool			db_depth_clear;
-	bool			db_depth_disable_expclear;
-	bool			db_stencil_clear;
-	bool			db_stencil_disable_expclear;
 	unsigned		ps_db_shader_control;
-	bool			occlusion_queries_disabled;
+	unsigned		dbcb_copy_sample;
+	bool			dbcb_depth_copy_enabled:1;
+	bool			dbcb_stencil_copy_enabled:1;
+	bool			db_flush_depth_inplace:1;
+	bool			db_flush_stencil_inplace:1;
+	bool			db_depth_clear:1;
+	bool			db_depth_disable_expclear:1;
+	bool			db_stencil_clear:1;
+	bool			db_stencil_disable_expclear:1;
+	bool			occlusion_queries_disabled:1;
 
 	/* Emitted draw state. */
+	bool			gs_tri_strip_adj_fix:1;
 	int			last_index_size;
 	int			last_base_vertex;
 	int			last_start_instance;
 	int			last_drawid;
 	int			last_sh_base_reg;
 	int			last_primitive_restart_en;
 	int			last_restart_index;
 	int			last_gs_out_prim;
 	int			last_prim;
 	int			last_multi_vgt_param;
 	int			last_rast_prim;
 	unsigned		last_sc_line_stipple;
 	unsigned		current_vs_state;
 	unsigned		last_vs_state;
 	enum pipe_prim_type	current_rast_prim; /* primitive type after TES, GS */
-	bool			gs_tri_strip_adj_fix;
 
 	/* Scratch buffer */
 	struct r600_atom	scratch_state;
 	struct r600_resource	*scratch_buffer;
 	unsigned		scratch_waves;
 	unsigned		spi_tmpring_size;
 
 	struct r600_resource	*compute_scratch_buffer;
 
 	/* Emitted derived tessellation state. */
-- 
2.7.4



More information about the mesa-dev mailing list