panfrost: Enable MSAA if we render to such a surface
[mesa.git] / src / gallium / drivers / panfrost / pan_fragment.c
index 2b6ffd841fe92eb4ec055056b56baa9f763b1b7f..94a64d7a4bdbb2c63af834ff6bf52217d176b3bf 100644 (file)
@@ -24,9 +24,9 @@
 
 #include "pan_context.h"
 #include "pan_util.h"
-#include "pan_format.h"
+#include "panfrost-quirks.h"
 
-#include "util/u_format.h"
+#include "util/format/u_format.h"
 
 /* Mark a surface as written */
 
@@ -42,9 +42,6 @@ panfrost_initialize_surface(
         struct panfrost_resource *rsrc = pan_resource(surf->texture);
 
         rsrc->slices[level].initialized = true;
-
-        assert(rsrc->bo);
-        panfrost_batch_add_bo(batch, rsrc->bo);
 }
 
 /* Generate a fragment job. This should be called once per frame. (According to
@@ -53,9 +50,9 @@ panfrost_initialize_surface(
 mali_ptr
 panfrost_fragment_job(struct panfrost_batch *batch, bool has_draws)
 {
-        struct panfrost_screen *screen = pan_screen(batch->ctx->base.screen);
+        struct panfrost_device *dev = pan_device(batch->ctx->base.screen);
 
-        mali_ptr framebuffer = screen->require_sfbd ?
+        mali_ptr framebuffer = (dev->quirks & MIDGARD_SFBD) ?
                                panfrost_sfbd_fragment(batch, has_draws) :
                                panfrost_mfbd_fragment(batch, has_draws);
 
@@ -103,10 +100,6 @@ panfrost_fragment_job(struct panfrost_batch *batch, bool has_draws)
                 .framebuffer = framebuffer,
         };
 
-        /* Normally, there should be no padding. However, fragment jobs are
-         * shared with 64-bit Bifrost systems, and accordingly there is 4-bytes
-         * of zero padding in between. */
-
         struct panfrost_transfer transfer = panfrost_allocate_transient(batch, sizeof(header) + sizeof(payload));
         memcpy(transfer.cpu, &header, sizeof(header));
         memcpy(transfer.cpu + sizeof(header), &payload, sizeof(payload));