radv: add radv_vs_input_state::attrib_index_offset
This is only used with static strides and it will allow us to bind the static vertex input state from the pipeline. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30916>
This commit is contained in:

committed by
Marge Bot

parent
dd673269e4
commit
aea6cec434
@@ -2954,6 +2954,10 @@ radv_pipeline_init_vertex_input_state(const struct radv_device *device, struct r
|
|||||||
pipeline->vs_input_state.bindings[i] = binding;
|
pipeline->vs_input_state.bindings[i] = binding;
|
||||||
pipeline->vs_input_state.bindings_match_attrib &= binding == i;
|
pipeline->vs_input_state.bindings_match_attrib &= binding == i;
|
||||||
|
|
||||||
|
if (state->vi->bindings[binding].stride) {
|
||||||
|
pipeline->vs_input_state.attrib_index_offset[i] = offset / state->vi->bindings[binding].stride;
|
||||||
|
}
|
||||||
|
|
||||||
if (state->vi->bindings[binding].input_rate) {
|
if (state->vi->bindings[binding].input_rate) {
|
||||||
pipeline->vs_input_state.instance_rate_inputs |= BITFIELD_BIT(i);
|
pipeline->vs_input_state.instance_rate_inputs |= BITFIELD_BIT(i);
|
||||||
pipeline->vs_input_state.divisors[i] = state->vi->bindings[binding].divisor;
|
pipeline->vs_input_state.divisors[i] = state->vi->bindings[binding].divisor;
|
||||||
|
@@ -297,6 +297,7 @@ struct radv_vs_input_state {
|
|||||||
uint8_t format_align_req_minus_1[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 component_align_req_minus_1[MAX_VERTEX_ATTRIBS];
|
||||||
uint8_t format_sizes[MAX_VERTEX_ATTRIBS];
|
uint8_t format_sizes[MAX_VERTEX_ATTRIBS];
|
||||||
|
uint32_t attrib_index_offset[MAX_VERTEX_ATTRIBS]; /* Only used with static strides. */
|
||||||
|
|
||||||
bool bindings_match_attrib;
|
bool bindings_match_attrib;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user