[Mesa-dev] [PATCH 4/4] radv: repack some structures post pipeline rework.
Samuel Pitoiset
samuel.pitoiset at gmail.com
Wed Jan 31 10:01:45 UTC 2018
Series is:
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
On 01/31/2018 12:41 AM, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> Bas's pipeline rework made me relook at the struct packing:
>
> radv_cmd_state: 984->968
> radv_cmd_buffer: 2910->2896
> radv_image: 1008->1000
> radv_pipeline: 1640->1632
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
> src/amd/vulkan/radv_private.h | 25 ++++++++++++++-----------
> 1 file changed, 14 insertions(+), 11 deletions(-)
>
> diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
> index e856f5f9b07..46a2e02612e 100644
> --- a/src/amd/vulkan/radv_private.h
> +++ b/src/amd/vulkan/radv_private.h
> @@ -886,12 +886,14 @@ struct radv_attachment_state {
>
> struct radv_cmd_state {
> /* Vertex descriptors */
> + enum radv_cmd_flush_bits flush_bits;
> bool vb_prefetch_dirty;
> + bool push_descriptors_dirty;
> + bool predicating;
> +
> uint64_t vb_va;
> unsigned vb_size;
>
> - bool push_descriptors_dirty;
> - bool predicating;
> uint32_t dirty;
>
> struct radv_pipeline * pipeline;
> @@ -915,7 +917,6 @@ struct radv_cmd_state {
>
> int32_t last_primitive_reset_en;
> uint32_t last_primitive_reset_index;
> - enum radv_cmd_flush_bits flush_bits;
> unsigned active_occlusion_queries;
> float offset_scale;
> uint32_t descriptors_dirty;
> @@ -962,14 +963,16 @@ struct radv_cmd_buffer {
> VkCommandBufferUsageFlags usage_flags;
> VkCommandBufferLevel level;
> enum radv_cmd_buffer_status status;
> + uint32_t queue_family_index;
> + VkShaderStageFlags push_constant_stages;
> + VkResult record_result;
> +
> struct radeon_winsys_cs *cs;
> struct radv_cmd_state state;
> struct radv_vertex_binding vertex_bindings[MAX_VBS];
> - uint32_t queue_family_index;
>
> uint8_t push_constants[MAX_PUSH_CONSTANTS_SIZE];
> uint32_t dynamic_buffers[4 * MAX_DYNAMIC_BUFFERS];
> - VkShaderStageFlags push_constant_stages;
> struct radv_push_descriptor_set push_descriptors;
> struct radv_descriptor_set meta_push_descriptors;
> struct radv_descriptor_set *descriptors[MAX_SETS];
> @@ -983,12 +986,11 @@ struct radv_cmd_buffer {
> bool tess_rings_needed;
> bool sample_positions_needed;
>
> - VkResult record_result;
>
> int ring_offsets_idx; /* just used for verification */
> uint32_t gfx9_fence_offset;
> - struct radeon_winsys_bo *gfx9_fence_bo;
> uint32_t gfx9_fence_idx;
> + struct radeon_winsys_bo *gfx9_fence_bo;
> };
>
> struct radv_image;
> @@ -1171,11 +1173,11 @@ struct radv_pipeline {
>
> struct radv_pipeline_layout * layout;
>
> + VkShaderStageFlags active_stages;
> bool needs_data_cache;
> bool need_indirect_descriptor_sets;
> struct radv_shader_variant * shaders[MESA_SHADER_STAGES];
> struct radv_shader_variant *gs_copy_shader;
> - VkShaderStageFlags active_stages;
>
> struct radeon_winsys_cs cs;
>
> @@ -1189,13 +1191,13 @@ struct radv_pipeline {
> struct radv_multisample_state ms;
> uint32_t spi_baryc_cntl;
> bool prim_restart_enable;
> + bool can_use_guardband;
> + uint8_t vtx_emit_num;
> unsigned esgs_ring_size;
> unsigned gsvs_ring_size;
> uint32_t vtx_base_sgpr;
> struct radv_ia_multi_vgt_param_helpers ia_multi_vgt_param;
> - uint8_t vtx_emit_num;
> struct radv_prim_vertex_count prim_vertex_count;
> - bool can_use_guardband;
> uint32_t needed_dynamic_state;
> } graphics;
> };
> @@ -1301,13 +1303,14 @@ struct radv_image {
> unsigned queue_family_mask;
> bool exclusive;
> bool shareable;
> + bool tc_compatible_htile;
>
> /* Set when bound */
> struct radeon_winsys_bo *bo;
> VkDeviceSize offset;
> uint64_t dcc_offset;
> uint64_t htile_offset;
> - bool tc_compatible_htile;
> +
> struct radeon_surf surface;
>
> struct radv_fmask_info fmask;
>
More information about the mesa-dev
mailing list