mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 22:20:09 +01:00
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:
parent
f6c3d73700
commit
ed465bf738
3 changed files with 13 additions and 28 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue