aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGert Wollny <gert.wollny@collabora.com>2022-11-10 18:58:59 +0100
committerMarge Bot <emma+marge@anholt.net>2022-11-16 08:50:52 +0000
commit98be3d1adfb8c37340b6abfe5edfbd4183fae802 (patch)
tree90d191c656f9d1ded21fd45b8f09d65c8e0dbd2f
parentf509cdae76d76794ac85da024f5a6d27bb23c72f (diff)
downloadvirglrenderer-98be3d1adfb8c37340b6abfe5edfbd4183fae802.tar.gz
shader: force setting the shader version after translating the shader
Only after translating the shader we actually know whether the system UBO is used, and hence, the minimum shader version needs to be set. Fixes: 2f6aa408882cb shader: require glsl 1.40 when using a sysvalue UBO Closes #294 Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/980>
-rw-r--r--src/vrend_shader.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/vrend_shader.c b/src/vrend_shader.c
index aca018e1..60d7eb7f 100644
--- a/src/vrend_shader.c
+++ b/src/vrend_shader.c
@@ -7884,10 +7884,6 @@ bool vrend_convert_shader(const struct vrend_context *rctx,
if (cfg->use_core_profile && cfg->glsl_version >= 140)
ctx.glsl_ver_required = require_glsl_ver(&ctx, 140);
- /* If we need a sysvalue UBO then we require GLSL 1.40 */
- if (ctx.glsl_strbufs.required_sysval_uniform_decls)
- ctx.glsl_ver_required = require_glsl_ver(&ctx, 140);
-
if (sinfo->so_info.num_outputs) {
ctx.so = &sinfo->so_info;
ctx.so_names = calloc(sinfo->so_info.num_outputs, sizeof(char *));
@@ -7914,6 +7910,10 @@ bool vrend_convert_shader(const struct vrend_context *rctx,
if (bret == false)
goto fail;
+ /* If we need a sysvalue UBO then we require GLSL 1.40 */
+ if (ctx.glsl_strbufs.required_sysval_uniform_decls)
+ ctx.glsl_ver_required = require_glsl_ver(&ctx, 140);
+
if (!ctx.cfg->use_gles &&
( key->in_arrays.num_arrays > 0 ) &&
(ctx.prog_type == TGSI_PROCESSOR_GEOMETRY ||