dzn: Delete dzn structs for indirect draw args and use D3D ones

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28383>
This commit is contained in:
Jesse Natalie 2024-03-25 11:38:04 -07:00 committed by Marge Bot
parent f6c3d73700
commit ed465bf738
3 changed files with 13 additions and 28 deletions

View file

@ -3789,8 +3789,8 @@ dzn_cmd_buffer_indirect_draw(struct dzn_cmd_buffer *cmdbuf,
cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline;
uint32_t min_draw_buf_stride =
indexed ?
sizeof(struct dzn_indirect_indexed_draw_params) :
sizeof(struct dzn_indirect_draw_params);
sizeof(D3D12_DRAW_INDEXED_ARGUMENTS) :
sizeof(D3D12_DRAW_ARGUMENTS);
bool prim_restart =
dzn_graphics_pipeline_get_desc_template(pipeline, ib_strip_cut) != NULL;
@ -5314,12 +5314,12 @@ dzn_CmdDrawIndexed(VkCommandBuffer commandBuffer,
* count passed to the draw call, which forces us to use the indirect
* path.
*/
struct dzn_indirect_indexed_draw_params params = {
.index_count = indexCount,
.instance_count = instanceCount,
.first_index = firstIndex,
.vertex_offset = vertexOffset,
.first_instance = firstInstance,
D3D12_DRAW_INDEXED_ARGUMENTS params = {
.IndexCountPerInstance = indexCount,
.InstanceCount = instanceCount,
.StartIndexLocation = firstIndex,
.BaseVertexLocation = vertexOffset,
.StartInstanceLocation = firstInstance,
};
ID3D12Resource *draw_buf;

View file

@ -229,7 +229,7 @@ dzn_nir_indirect_draw_shader(enum dzn_indirect_draw_type type)
triangle_fan_exec_vals[triangle_fan_exec_param_count++] = nir_channel(&b, draw_info1, 2);
triangle_fan_exec_vals[triangle_fan_exec_param_count++] = nir_channel(&b, draw_info1, 0);
uint32_t index_count_offset =
offsetof(struct dzn_indirect_triangle_fan_draw_exec_params, indexed_draw.index_count);
offsetof(struct dzn_indirect_triangle_fan_draw_exec_params, indexed_draw.IndexCountPerInstance);
nir_def *exec_buf_start =
nir_load_ubo(&b, 2, 32,
params_desc, nir_imm_int(&b, 16),

View file

@ -31,21 +31,6 @@
#include "nir.h"
struct dzn_indirect_draw_params {
uint32_t vertex_count;
uint32_t instance_count;
uint32_t first_vertex;
uint32_t first_instance;
};
struct dzn_indirect_indexed_draw_params {
uint32_t index_count;
uint32_t instance_count;
uint32_t first_index;
int32_t vertex_offset;
uint32_t first_instance;
};
struct dzn_indirect_draw_rewrite_params {
uint32_t draw_buf_stride;
};
@ -70,8 +55,8 @@ struct dzn_indirect_draw_exec_params {
uint32_t draw_id;
} sysvals;
union {
struct dzn_indirect_draw_params draw;
struct dzn_indirect_indexed_draw_params indexed_draw;
D3D12_DRAW_ARGUMENTS draw;
D3D12_DRAW_INDEXED_ARGUMENTS indexed_draw;
};
};
@ -83,8 +68,8 @@ struct dzn_indirect_triangle_fan_draw_exec_params {
uint32_t draw_id;
} sysvals;
union {
struct dzn_indirect_draw_params draw;
struct dzn_indirect_indexed_draw_params indexed_draw;
D3D12_DRAW_ARGUMENTS draw;
D3D12_DRAW_INDEXED_ARGUMENTS indexed_draw;
};
};