From a5e7941bfce584daac278cc7f5f31165423f8fa1 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Mon, 25 Apr 2016 02:54:04 -0400 Subject: [PATCH] glsl: texture*Proj() needs vec3 params for cubes and 3d textures. --- mojoshader.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mojoshader.c b/mojoshader.c index e4ab2b90..65f775ae 100644 --- a/mojoshader.c +++ b/mojoshader.c @@ -3408,8 +3408,17 @@ static void glsl_texld(Context *ctx, const int texldd) if (texldd) { - make_GLSL_srcarg_string_vec2(ctx, 2, src2, sizeof (src2)); - make_GLSL_srcarg_string_vec2(ctx, 3, src3, sizeof (src3)); + if (sreg->index == TEXTURE_TYPE_2D) + { + make_GLSL_srcarg_string_vec2(ctx, 2, src2, sizeof (src2)); + make_GLSL_srcarg_string_vec2(ctx, 3, src3, sizeof (src3)); + } // if + else + { + assert((sreg->index == TEXTURE_TYPE_CUBE) || (sreg->index == TEXTURE_TYPE_VOLUME)); + make_GLSL_srcarg_string_vec3(ctx, 2, src2, sizeof (src2)); + make_GLSL_srcarg_string_vec3(ctx, 3, src3, sizeof (src3)); + } // else } // if // !!! FIXME: can TEXLDD set instruction_controls?