[Bf-blender-cvs] [43dcfcb] master: Fix T49201: Mesh with OpenSubdiv subsurf and a texture disappears in Material viewport mode

Sergey Sharybin noreply at git.blender.org
Tue Aug 30 12:12:50 CEST 2016


Commit: 43dcfcb27a30b98e13d1d7f516db618f4a306859
Author: Sergey Sharybin
Date:   Tue Aug 30 12:12:12 2016 +0200
Branches: master
https://developer.blender.org/rB43dcfcb27a30b98e13d1d7f516db618f4a306859

Fix T49201: Mesh with OpenSubdiv subsurf and a texture disappears in Material viewport mode

===================================================================

M	source/blender/gpu/intern/gpu_codegen.c
M	source/blender/gpu/shaders/gpu_shader_geometry.glsl

===================================================================

diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index c40bc8e..211394e 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -877,7 +877,7 @@ static char *code_generate_geometry(ListBase *nodes, bool use_opensubdiv)
 					if (input->attribtype == CD_MTFACE) {
 						BLI_dynstr_appendf(
 						        ds,
-						        "\tINTERP_FACE_VARYING_2(var%d, "
+						        "\tINTERP_FACE_VARYING_ATT_2(var%d, "
 						        "int(texelFetch(FVarDataOffsetBuffer, fvar%d_offset).r), st);\n",
 						        input->attribid,
 						        input->attribid);
diff --git a/source/blender/gpu/shaders/gpu_shader_geometry.glsl b/source/blender/gpu/shaders/gpu_shader_geometry.glsl
index 6f06388..fe630db 100644
--- a/source/blender/gpu/shaders/gpu_shader_geometry.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_geometry.glsl
@@ -31,6 +31,18 @@ uniform int osd_fvar_count;
 		             tessCoord.t); \
 	}
 
+#ifdef USE_NEW_SHADING
+#  define INTERP_FACE_VARYING_ATT_2(result, fvarOffset, tessCoord) \
+	{ \
+		vec2 tmp; \
+		INTERP_FACE_VARYING_2(tmp, fvarOffset, tessCoord); \
+		result = vec3(tmp, 0); \
+	}
+#else
+#  define INTERP_FACE_VARYING_ATT_2(result, fvarOffset, tessCoord) \
+	INTERP_FACE_VARYING_2(result, fvarOffset, tessCoord)
+#endif
+
 uniform samplerBuffer FVarDataBuffer;
 uniform isamplerBuffer FVarDataOffsetBuffer;




More information about the Bf-blender-cvs mailing list