radv: move radv_vertex_input_state to radv_pipeline_graphics.h

Like other similar states that are shared between graphics pipeline
and command buffers.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37025>
This commit is contained in:
Samuel Pitoiset 2025-08-27 15:19:00 +02:00 committed by Marge Bot
parent d7f401c2bb
commit 53ce957983
2 changed files with 27 additions and 28 deletions

View file

@ -56,6 +56,33 @@ struct radv_blend_equation_state {
bool mrt0_is_dual_src;
};
struct radv_vertex_input_state {
uint32_t attribute_mask;
uint32_t instance_rate_inputs;
uint32_t nontrivial_divisors;
uint32_t zero_divisors;
uint32_t post_shuffle;
/* Having two separate fields instead of a single uint64_t makes it easier to remove attributes
* using bitwise arithmetic.
*/
uint32_t alpha_adjust_lo;
uint32_t alpha_adjust_hi;
uint32_t nontrivial_formats;
uint8_t bindings[MAX_VERTEX_ATTRIBS];
uint32_t divisors[MAX_VERTEX_ATTRIBS];
uint32_t offsets[MAX_VERTEX_ATTRIBS];
uint8_t formats[MAX_VERTEX_ATTRIBS];
uint8_t format_align_req_minus_1[MAX_VERTEX_ATTRIBS];
uint8_t component_align_req_minus_1[MAX_VERTEX_ATTRIBS];
uint8_t format_sizes[MAX_VERTEX_ATTRIBS];
uint32_t attrib_index_offset[MAX_VERTEX_ATTRIBS]; /* Only used with static strides. */
uint32_t non_trivial_format[MAX_VERTEX_ATTRIBS];
bool bindings_match_attrib;
};
struct radv_dynamic_state {
struct vk_dynamic_graphics_state vk;

View file

@ -30,7 +30,6 @@ struct radv_device;
struct radv_pipeline;
struct radv_ray_tracing_pipeline;
struct radv_shader_args;
struct radv_vertex_input_state;
struct radv_shader_args;
struct radv_serialized_shader_arena_block;
struct vk_pipeline_robustness_state;
@ -288,33 +287,6 @@ radv_is_last_vgt_stage(const struct radv_shader_stage *stage)
(stage->info.next_stage == MESA_SHADER_FRAGMENT || stage->info.next_stage == MESA_SHADER_NONE);
}
struct radv_vertex_input_state {
uint32_t attribute_mask;
uint32_t instance_rate_inputs;
uint32_t nontrivial_divisors;
uint32_t zero_divisors;
uint32_t post_shuffle;
/* Having two separate fields instead of a single uint64_t makes it easier to remove attributes
* using bitwise arithmetic.
*/
uint32_t alpha_adjust_lo;
uint32_t alpha_adjust_hi;
uint32_t nontrivial_formats;
uint8_t bindings[MAX_VERTEX_ATTRIBS];
uint32_t divisors[MAX_VERTEX_ATTRIBS];
uint32_t offsets[MAX_VERTEX_ATTRIBS];
uint8_t formats[MAX_VERTEX_ATTRIBS];
uint8_t format_align_req_minus_1[MAX_VERTEX_ATTRIBS];
uint8_t component_align_req_minus_1[MAX_VERTEX_ATTRIBS];
uint8_t format_sizes[MAX_VERTEX_ATTRIBS];
uint32_t attrib_index_offset[MAX_VERTEX_ATTRIBS]; /* Only used with static strides. */
uint32_t non_trivial_format[MAX_VERTEX_ATTRIBS];
bool bindings_match_attrib;
};
struct radv_vs_prolog_key {
/* All the fields are pre-masked with BITFIELD_MASK(num_attributes).
* Some of the fields are pre-masked by other conditions. See lookup_vs_prolog.