Mesa (main): lavapipe: fix shader access stage conversion from mesa -> pipe
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 26 20:32:54 UTC 2022
Module: Mesa
Branch: main
Commit: fc1eec0a275b7f1c4ed5a48536b84857d2ad1425
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fc1eec0a275b7f1c4ed5a48536b84857d2ad1425
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Tue Jul 26 14:42:22 2022 -0400
lavapipe: fix shader access stage conversion from mesa -> pipe
ok ok but this time it's fixed and works I promise
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17758>
---
src/gallium/frontends/lavapipe/lvp_execute.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c
index acefd4e959d..76a76b0e74b 100644
--- a/src/gallium/frontends/lavapipe/lvp_execute.c
+++ b/src/gallium/frontends/lavapipe/lvp_execute.c
@@ -975,17 +975,18 @@ static void handle_graphics_pipeline(struct vk_cmd_queue_entry *cmd,
}
static void
-handle_pipeline_access(struct rendering_state *state, enum pipe_shader_type pstage)
+handle_pipeline_access(struct rendering_state *state, gl_shader_stage stage)
{
+ enum pipe_shader_type pstage = pipe_shader_type_from_mesa(stage);
for (unsigned i = 0; i < PIPE_MAX_SHADER_IMAGES; i++) {
state->iv[pstage][i].access = 0;
state->iv[pstage][i].shader_access = 0;
}
- u_foreach_bit(idx, state->access[pstage].images_read) {
+ u_foreach_bit(idx, state->access[stage].images_read) {
state->iv[pstage][idx].access |= PIPE_IMAGE_ACCESS_READ;
state->iv[pstage][idx].shader_access |= PIPE_IMAGE_ACCESS_READ;
}
- u_foreach_bit(idx, state->access[pstage].images_written) {
+ u_foreach_bit(idx, state->access[stage].images_written) {
state->iv[pstage][idx].access |= PIPE_IMAGE_ACCESS_WRITE;
state->iv[pstage][idx].shader_access |= PIPE_IMAGE_ACCESS_WRITE;
}
@@ -997,10 +998,10 @@ static void handle_pipeline(struct vk_cmd_queue_entry *cmd,
LVP_FROM_HANDLE(lvp_pipeline, pipeline, cmd->u.bind_pipeline.pipeline);
if (pipeline->is_compute_pipeline) {
handle_compute_pipeline(cmd, state);
- handle_pipeline_access(state, PIPE_SHADER_COMPUTE);
+ handle_pipeline_access(state, MESA_SHADER_COMPUTE);
} else {
handle_graphics_pipeline(cmd, state);
- for (unsigned i = 0; i < PIPE_SHADER_COMPUTE; i++)
+ for (unsigned i = 0; i < MESA_SHADER_COMPUTE; i++)
handle_pipeline_access(state, i);
}
state->push_size[pipeline->is_compute_pipeline] = pipeline->layout->push_constant_size;
More information about the mesa-commit
mailing list