mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 11:08:03 +02:00
anv: rename generated draws for Gfx11
We'll need different shaders for Gfx9 Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Ivan Briano <ivan.briano@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>
This commit is contained in:
parent
caf2389bc5
commit
a2026bf5f9
7 changed files with 25 additions and 25 deletions
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
#include "anv_generated_indirect_draws.h"
|
||||
|
||||
#include "shaders/generated_draws_spv.h"
|
||||
#include "shaders/gfx11_generated_draws_spv.h"
|
||||
|
||||
/* This pass takes vulkan descriptor bindings 0 & 1 and turns them into global
|
||||
* 64bit addresses. Binding 2 is left UBO that would normally be accessed
|
||||
|
|
@ -66,7 +66,7 @@ lower_vulkan_descriptors_instr(nir_builder *b, nir_instr *instr, void *cb_data)
|
|||
nir_load_ubo(b, 1, 64,
|
||||
nir_imm_int(b, 2),
|
||||
nir_imm_int(b,
|
||||
offsetof(struct anv_generate_indirect_params,
|
||||
offsetof(struct anv_generated_indirect_params,
|
||||
indirect_data_addr)),
|
||||
.align_mul = 8,
|
||||
.align_offset = 0,
|
||||
|
|
@ -86,7 +86,7 @@ lower_vulkan_descriptors_instr(nir_builder *b, nir_instr *instr, void *cb_data)
|
|||
nir_load_ubo(b, 1, 64,
|
||||
nir_imm_int(b, 2),
|
||||
nir_imm_int(b,
|
||||
offsetof(struct anv_generate_indirect_params,
|
||||
offsetof(struct anv_generated_indirect_params,
|
||||
generated_cmds_addr)),
|
||||
.align_mul = 8,
|
||||
.align_offset = 0,
|
||||
|
|
@ -298,8 +298,8 @@ anv_device_init_generated_indirect_draws(struct anv_device *device)
|
|||
compile_upload_spirv(device,
|
||||
&indirect_draws_key,
|
||||
sizeof(indirect_draws_key),
|
||||
generated_draws_spv_source,
|
||||
ARRAY_SIZE(generated_draws_spv_source),
|
||||
gfx11_generated_draws_spv_source,
|
||||
ARRAY_SIZE(gfx11_generated_draws_spv_source),
|
||||
11 /*
|
||||
* 2 * (2 indirect data loads + 3 3DPRIMITVE stores) +
|
||||
* 1 store (MI_BATCH_BUFFER_START)
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
#define ANV_GENERATED_FLAG_INDEXED BITFIELD_BIT(0)
|
||||
#define ANV_GENERATED_FLAG_PREDICATED BITFIELD_BIT(1)
|
||||
|
||||
/* This needs to match generated_draws.glsl :
|
||||
/* This needs to match gfx11_generated_draws.glsl :
|
||||
*
|
||||
* layout(set = 0, binding = 2) uniform block
|
||||
*/
|
||||
|
|
@ -45,7 +45,7 @@ struct anv_generated_indirect_draw_params {
|
|||
uint32_t end_addr_udw;
|
||||
};
|
||||
|
||||
struct anv_generate_indirect_params {
|
||||
struct anv_generated_indirect_params {
|
||||
struct anv_generated_indirect_draw_params draw;
|
||||
|
||||
/* Global address of binding 0 */
|
||||
|
|
@ -58,7 +58,7 @@ struct anv_generate_indirect_params {
|
|||
* split into smaller chunks, see while loop in
|
||||
* genX(cmd_buffer_emit_indirect_generated_draws)
|
||||
*/
|
||||
struct anv_generate_indirect_params *prev;
|
||||
struct anv_generated_indirect_params *prev;
|
||||
};
|
||||
|
||||
#endif /* ANV_GENERATED_INDIRECT_DRAWS_H */
|
||||
|
|
|
|||
|
|
@ -3551,7 +3551,7 @@ genX(cmd_buffer_flush_gfx_state)(struct anv_cmd_buffer *cmd_buffer)
|
|||
}
|
||||
|
||||
#define GFX_HAS_GENERATED_CMDS GFX_VER >= 11
|
||||
#if GFX_VER >= 11
|
||||
#if GFX_HAS_GENERATED_CMDS
|
||||
#include "genX_cmd_draw_generated_indirect.h"
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@ genX(cmd_buffer_emit_generated_push_data)(struct anv_cmd_buffer *cmd_buffer,
|
|||
#endif
|
||||
}
|
||||
|
||||
static struct anv_generate_indirect_params *
|
||||
static struct anv_generated_indirect_params *
|
||||
genX(cmd_buffer_emit_generate_draws)(struct anv_cmd_buffer *cmd_buffer,
|
||||
struct anv_address generated_cmds_addr,
|
||||
uint32_t draw_cmd_stride,
|
||||
|
|
@ -352,13 +352,13 @@ genX(cmd_buffer_emit_generate_draws)(struct anv_cmd_buffer *cmd_buffer,
|
|||
|
||||
struct anv_state push_data_state =
|
||||
anv_cmd_buffer_alloc_dynamic_state(cmd_buffer,
|
||||
sizeof(struct anv_generate_indirect_params),
|
||||
sizeof(struct anv_generated_indirect_params),
|
||||
ANV_UBO_ALIGNMENT);
|
||||
|
||||
struct anv_graphics_pipeline *pipeline = cmd_buffer->state.gfx.pipeline;
|
||||
|
||||
struct anv_generate_indirect_params *push_data = push_data_state.map;
|
||||
*push_data = (struct anv_generate_indirect_params) {
|
||||
struct anv_generated_indirect_params *push_data = push_data_state.map;
|
||||
*push_data = (struct anv_generated_indirect_params) {
|
||||
.draw = {
|
||||
.flags = (indexed ? ANV_GENERATED_FLAG_INDEXED : 0) |
|
||||
(cmd_buffer->state.conditional_render_enabled ?
|
||||
|
|
@ -389,7 +389,7 @@ genX(cmd_buffer_emit_generate_draws)(struct anv_cmd_buffer *cmd_buffer,
|
|||
.bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
|
||||
.offset = push_data_state.offset,
|
||||
},
|
||||
offsetof(struct anv_generate_indirect_params, draw.draw_count)),
|
||||
offsetof(struct anv_generated_indirect_params, draw.draw_count)),
|
||||
count_addr, 4);
|
||||
|
||||
/* Make sure the memcpy landed for the generating draw call to pick up
|
||||
|
|
@ -442,7 +442,7 @@ genX(cmd_buffer_emit_indirect_generated_draws_init)(struct anv_cmd_buffer *cmd_b
|
|||
|
||||
static void
|
||||
genX(cmd_buffer_rewrite_forward_end_addr)(struct anv_cmd_buffer *cmd_buffer,
|
||||
struct anv_generate_indirect_params *params)
|
||||
struct anv_generated_indirect_params *params)
|
||||
{
|
||||
/* We don't know the end_addr until we have emitted all the generation
|
||||
* draws. Go and edit the address of all the push parameters.
|
||||
|
|
@ -494,7 +494,7 @@ genX(cmd_buffer_emit_indirect_generated_draws)(struct anv_cmd_buffer *cmd_buffer
|
|||
|
||||
const uint32_t draw_cmd_stride = 4 * GENX(3DPRIMITIVE_EXTENDED_length);
|
||||
|
||||
struct anv_generate_indirect_params *last_params = NULL;
|
||||
struct anv_generated_indirect_params *last_params = NULL;
|
||||
uint32_t item_base = 0;
|
||||
while (item_base < max_draw_count) {
|
||||
const uint32_t item_count = MIN2(max_draw_count - item_base,
|
||||
|
|
@ -513,7 +513,7 @@ genX(cmd_buffer_emit_indirect_generated_draws)(struct anv_cmd_buffer *cmd_buffer
|
|||
if (result != VK_SUCCESS)
|
||||
return;
|
||||
|
||||
struct anv_generate_indirect_params *params =
|
||||
struct anv_generated_indirect_params *params =
|
||||
genX(cmd_buffer_emit_generate_draws)(
|
||||
cmd_buffer,
|
||||
anv_batch_current_address(&cmd_buffer->batch),
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ foreach g : [['90', ['gfx8_cmd_buffer.c']],
|
|||
_gfx_ver = g[0]
|
||||
libanv_per_hw_ver_libs += static_library(
|
||||
'anv_per_hw_ver@0@'.format(_gfx_ver),
|
||||
[anv_per_hw_ver_files, g[1], anv_entrypoints[0], generated_draws_spv_h, ],
|
||||
[anv_per_hw_ver_files, g[1], anv_entrypoints[0], gfx11_generated_draws_spv_h, ],
|
||||
include_directories : [
|
||||
inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_compiler, inc_intel,
|
||||
],
|
||||
|
|
@ -205,7 +205,7 @@ libanv_common = static_library(
|
|||
[
|
||||
libanv_files, anv_entrypoints, sha1_h,
|
||||
gen_xml_pack, float64_spv_h,
|
||||
generated_draws_spv_h,
|
||||
gfx11_generated_draws_spv_h,
|
||||
],
|
||||
include_directories : [
|
||||
inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel, inc_compiler,
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ void main()
|
|||
bool is_predicated = (flags & ANV_GENERATED_FLAG_PREDICATED) != 0;
|
||||
uint item_idx = uint(gl_FragCoord.y) * 8192 + uint(gl_FragCoord.x);
|
||||
uint indirect_data_offset = item_idx * indirect_data_stride / 4;
|
||||
uint _3dprim_dw_size = 10;
|
||||
uint _3dprim_dw_size = 10; /* 3DPRIMITIVE with extended parameters */
|
||||
uint cmd_idx = item_idx * _3dprim_dw_size;
|
||||
uint draw_id = draw_base + item_idx;
|
||||
|
||||
|
|
@ -32,14 +32,14 @@ float64_spv_h = custom_target(
|
|||
]
|
||||
)
|
||||
|
||||
generated_draws_spv_h = custom_target(
|
||||
'generated_draws_spv.h',
|
||||
input : [glsl2spirv, 'generated_draws.glsl'],
|
||||
output : 'generated_draws_spv.h',
|
||||
gfx11_generated_draws_spv_h = custom_target(
|
||||
'gfx11_generated_draws_spv.h',
|
||||
input : [glsl2spirv, 'gfx11_generated_draws.glsl'],
|
||||
output : 'gfx11_generated_draws_spv.h',
|
||||
command : [
|
||||
prog_python, '@INPUT@', '@OUTPUT@',
|
||||
prog_glslang,
|
||||
'--vn', 'generated_draws_spv_source',
|
||||
'--vn', 'gfx11_generated_draws_spv_source',
|
||||
'--glsl-version', '450',
|
||||
'--stage', 'frag',
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue