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:
Lionel Landwerlin 2022-12-30 14:12:29 +02:00 committed by Marge Bot
parent caf2389bc5
commit a2026bf5f9
7 changed files with 25 additions and 25 deletions

View file

@ -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)

View file

@ -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 */

View file

@ -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

View file

@ -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),

View file

@ -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,

View file

@ -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;

View file

@ -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',
]