anv: fixup 32bit build of internal shaders

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 11b4c23d19 ("anv: add ring buffer mode to generated draw optimization")
Fixes: db335d9b73 ("anv: factor out host/gpu internal shaders interfaces")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10037
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25870>
This commit is contained in:
Lionel Landwerlin 2023-10-24 23:06:01 +03:00 committed by Marge Bot
parent 471942e06b
commit 3de5da7a5d
2 changed files with 14 additions and 13 deletions

View file

@ -26,12 +26,9 @@
#include "shaders/interface.h"
struct anv_generated_indirect_params {
struct PACKED anv_generated_indirect_params {
struct anv_generated_indirect_draw_params draw;
/* Draw count value for non count variants of draw indirect commands */
uint32_t draw_count;
/* Global address of binding 0 */
uint64_t indirect_data_addr;
@ -44,6 +41,9 @@ struct anv_generated_indirect_params {
/* Global address of binding 3 (points to the draw_count field above) */
uint64_t draw_count_addr;
/* Draw count value for non count variants of draw indirect commands */
uint32_t draw_count;
/* CPU side pointer to the previous item when number of draws has to be
* split into smaller chunks, see while loop in
* genX(cmd_buffer_emit_indirect_generated_draws)
@ -51,7 +51,7 @@ struct anv_generated_indirect_params {
struct anv_generated_indirect_params *prev;
};
struct anv_query_copy_params {
struct PACKED anv_query_copy_params {
struct anv_query_copy_shader_params copy;
uint64_t query_data_addr;
@ -63,12 +63,12 @@ struct anv_query_copy_params {
*
* layout(set = 0, binding = 2) uniform block
*/
struct anv_memcpy_shader_params {
struct PACKED anv_memcpy_shader_params {
uint32_t num_dwords;
uint32_t pad;
};
struct anv_memcpy_params {
struct PACKED anv_memcpy_params {
struct anv_memcpy_shader_params copy;
uint64_t src_addr;

View file

@ -28,6 +28,7 @@
#define BITFIELD_BIT(i) (1u << i)
#define uint32_t uint
#define PACKED
#else
#include "util/macros.h"
@ -47,7 +48,7 @@
/* Whether the generation shader writes to the ring buffer */
#define ANV_GENERATED_FLAG_RING_MODE BITFIELD_BIT(5)
struct anv_generated_indirect_draw_params {
struct PACKED anv_generated_indirect_draw_params {
/* Draw ID buffer address (only used on Gfx9) */
uint64_t draw_id_addr;
/* Indirect data buffer address (only used on Gfx9) */
@ -63,6 +64,10 @@ struct anv_generated_indirect_draw_params {
* an indirect count)
*/
uint32_t max_draw_count;
/* Number of draws to generate in the ring buffer (only useful in ring
* buffer mode)
*/
uint32_t ring_count;
/* Instance multiplier for multi view */
uint32_t instance_multiplier;
/* Address where to jump at to generate further draws (used with ring mode)
@ -72,10 +77,6 @@ struct anv_generated_indirect_draw_params {
* indirect draw count variants)
*/
uint64_t end_addr;
/* Number of draws to generate in the ring buffer (only useful in ring
* buffer mode)
*/
uint32_t ring_count;
};
#define ANV_COPY_QUERY_FLAG_RESULT64 BITFIELD_BIT(0)
@ -87,7 +88,7 @@ struct anv_generated_indirect_draw_params {
*
* layout(set = 0, binding = 2) uniform block
*/
struct anv_query_copy_shader_params {
struct PACKED anv_query_copy_shader_params {
/* ANV_COPY_QUERY_FLAG_* flags */
uint32_t flags;