mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-16 04:20:34 +01:00
panfrost: Don't call panfrost_vt_init for compute
Given we emit shared memory immediately after anyway, the function call doesn't do anything but zero-initializing the payload and setting some magic bits. We can do that ourselves at the call site. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6476>
This commit is contained in:
parent
1513392e77
commit
136fd5cd2e
3 changed files with 8 additions and 4 deletions
|
|
@ -51,7 +51,7 @@ panfrost_bo_access_for_stage(enum pipe_shader_type stage)
|
|||
PAN_BO_ACCESS_VERTEX_TILER;
|
||||
}
|
||||
|
||||
static mali_ptr
|
||||
mali_ptr
|
||||
panfrost_vt_emit_shared_memory(struct panfrost_batch *batch)
|
||||
{
|
||||
struct panfrost_device *dev = pan_device(batch->ctx->base.screen);
|
||||
|
|
|
|||
|
|
@ -81,6 +81,9 @@ mali_ptr
|
|||
panfrost_emit_vertex_data(struct panfrost_batch *batch,
|
||||
mali_ptr *buffers);
|
||||
|
||||
mali_ptr
|
||||
panfrost_vt_emit_shared_memory(struct panfrost_batch *batch);
|
||||
|
||||
void
|
||||
panfrost_emit_varying_descriptor(struct panfrost_batch *batch,
|
||||
unsigned vertex_count,
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include "pan_context.h"
|
||||
#include "pan_cmdstream.h"
|
||||
#include "panfrost-quirks.h"
|
||||
#include "pan_bo.h"
|
||||
#include "util/u_memory.h"
|
||||
#include "nir_serialize.h"
|
||||
|
|
@ -95,6 +96,7 @@ panfrost_launch_grid(struct pipe_context *pipe,
|
|||
const struct pipe_grid_info *info)
|
||||
{
|
||||
struct panfrost_context *ctx = pan_context(pipe);
|
||||
struct panfrost_device *dev = pan_device(pipe->screen);
|
||||
|
||||
/* TODO: Do we want a special compute-only batch? */
|
||||
struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx);
|
||||
|
|
@ -102,7 +104,7 @@ panfrost_launch_grid(struct pipe_context *pipe,
|
|||
ctx->compute_grid = info;
|
||||
|
||||
/* TODO: Stub */
|
||||
struct midgard_payload_vertex_tiler payload;
|
||||
struct midgard_payload_vertex_tiler payload = { 0 };
|
||||
|
||||
/* We implement OpenCL inputs as uniforms (or a UBO -- same thing), so
|
||||
* reuse the graphics path for this by lowering to Gallium */
|
||||
|
|
@ -117,9 +119,8 @@ panfrost_launch_grid(struct pipe_context *pipe,
|
|||
if (info->input)
|
||||
pipe->set_constant_buffer(pipe, PIPE_SHADER_COMPUTE, 0, &ubuf);
|
||||
|
||||
panfrost_vt_init(ctx, PIPE_SHADER_COMPUTE, &payload.prefix, &payload.postfix);
|
||||
|
||||
mali_ptr push = 0;
|
||||
payload.postfix.gl_enables = (dev->quirks & IS_BIFROST) ? 0x2 : 0x6;
|
||||
payload.postfix.shader = panfrost_emit_compute_shader_meta(batch, PIPE_SHADER_COMPUTE);
|
||||
payload.postfix.uniform_buffers = panfrost_emit_const_buf(batch, PIPE_SHADER_COMPUTE, &push);
|
||||
payload.postfix.uniforms = push;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue