Mesa (master): lima: upload the shader to a BO at shader creation
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Mar 4 18:40:09 UTC 2021
Module: Mesa
Branch: master
Commit: 4ac3f850540f8fffd15e4994de6bbf54b17dc649
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ac3f850540f8fffd15e4994de6bbf54b17dc649
Author: Eric Anholt <eric at anholt.net>
Date: Tue Feb 16 12:49:01 2021 -0800
lima: upload the shader to a BO at shader creation
No need to conditionally upload later.
Signed-off-by: Erico Nunes <nunes.erico at gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9089>
---
src/gallium/drivers/lima/lima_program.c | 48 +++++++++++++++------------------
1 file changed, 22 insertions(+), 26 deletions(-)
diff --git a/src/gallium/drivers/lima/lima_program.c b/src/gallium/drivers/lima/lima_program.c
index 6248dea640d..5a96c833d70 100644
--- a/src/gallium/drivers/lima/lima_program.c
+++ b/src/gallium/drivers/lima/lima_program.c
@@ -300,6 +300,16 @@ lima_fs_compile_shader(struct lima_context *ctx,
fs->uses_discard = nir->info.fs.uses_discard;
ralloc_free(nir);
+ fs->bo = lima_bo_create(screen, fs->shader_size, 0);
+ if (!fs->bo) {
+ fprintf(stderr, "lima: create fs shader bo fail\n");
+ return false;
+ }
+
+ memcpy(lima_bo_map(fs->bo), fs->shader, fs->shader_size);
+ ralloc_free(fs->shader);
+ fs->shader = NULL;
+
return true;
}
@@ -387,6 +397,18 @@ lima_vs_compile_shader(struct lima_context *ctx,
}
ralloc_free(nir);
+
+ struct lima_screen *screen = lima_screen(ctx->base.screen);
+ vs->bo = lima_bo_create(screen, vs->shader_size, 0);
+ if (!vs->bo) {
+ fprintf(stderr, "lima: create vs shader bo fail\n");
+ return false;
+ }
+
+ memcpy(lima_bo_map(vs->bo), vs->shader, vs->shader_size);
+ ralloc_free(vs->shader);
+ vs->shader = NULL;
+
return true;
}
@@ -440,19 +462,6 @@ lima_update_vs_state(struct lima_context *ctx)
ctx->vs = vs;
- if (!vs->bo) {
- struct lima_screen *screen = lima_screen(ctx->base.screen);
- vs->bo = lima_bo_create(screen, vs->shader_size, 0);
- if (!vs->bo) {
- fprintf(stderr, "lima: create vs shader bo fail\n");
- return false;
- }
-
- memcpy(lima_bo_map(vs->bo), vs->shader, vs->shader_size);
- ralloc_free(vs->shader);
- vs->shader = NULL;
- }
-
if (ctx->vs != old_vs)
ctx->dirty |= LIMA_CONTEXT_DIRTY_COMPILED_VS;
@@ -523,19 +532,6 @@ lima_update_fs_state(struct lima_context *ctx)
ctx->fs = fs;
- if (!fs->bo) {
- struct lima_screen *screen = lima_screen(ctx->base.screen);
- fs->bo = lima_bo_create(screen, fs->shader_size, 0);
- if (!fs->bo) {
- fprintf(stderr, "lima: create fs shader bo fail\n");
- return false;
- }
-
- memcpy(lima_bo_map(fs->bo), fs->shader, fs->shader_size);
- ralloc_free(fs->shader);
- fs->shader = NULL;
- }
-
if (ctx->fs != old_fs)
ctx->dirty |= LIMA_CONTEXT_DIRTY_COMPILED_FS;
More information about the mesa-commit
mailing list