diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index 6ce9398f2b4..11da62fb9cd 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -4426,10 +4426,14 @@ init_batch(struct panfrost_batch *batch) batch->tls = batch->framebuffer; #if PAN_ARCH == 5 - pan_pack(&batch->tls.gpu, FRAMEBUFFER_POINTER, cfg) { + struct mali_framebuffer_pointer_packed ptr; + + pan_pack(ptr.opaque, FRAMEBUFFER_POINTER, cfg) { cfg.pointer = batch->framebuffer.gpu; cfg.render_target_count = 1; /* a necessary lie */ } + + batch->tls.gpu = ptr.opaque[0]; #endif #endif } diff --git a/src/panfrost/lib/pan_cs.c b/src/panfrost/lib/pan_cs.c index 4e0230523af..c4bcb6c153c 100644 --- a/src/panfrost/lib/pan_cs.c +++ b/src/panfrost/lib/pan_cs.c @@ -27,6 +27,8 @@ #include "util/macros.h" +#include "genxml/gen_macros.h" + #include "pan_cs.h" #include "pan_encoder.h" #include "pan_texture.h" @@ -831,12 +833,12 @@ GENX(pan_emit_fbd)(const struct panfrost_device *dev, *(fb->rts[i].crc_valid) = false; } - uint64_t tag = 0; - pan_pack(&tag, FRAMEBUFFER_POINTER, cfg) { + struct mali_framebuffer_pointer_packed tag; + pan_pack(tag.opaque, FRAMEBUFFER_POINTER, cfg) { cfg.zs_crc_extension_present = has_zs_crc_ext; cfg.render_target_count = MAX2(fb->rt_count, 1); } - return tag; + return tag.opaque[0]; } #else /* PAN_ARCH == 4 */ unsigned