[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55853] branches/ge_harmony/source/blender /gpu: GPU_shaders now print warnings from compiling, and not just errors.
Daniel Stokes
kupomail at gmail.com
Sat Apr 6 21:46:16 CEST 2013
Revision: 55853
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55853
Author: kupoman
Date: 2013-04-06 19:46:16 +0000 (Sat, 06 Apr 2013)
Log Message:
-----------
GPU_shaders now print warnings from compiling, and not just errors.
Also the following shaders will now display the line number from their file when an error occurs, even when mixed with other shaders (this improves debugging):
* gpu_shader_light_frag.glsl
* gpu_shader_light_vert.glsl
* gpu_shader_prepass_frag.glsl
* gpu_shader_prepass_vert.glsl
Modified Paths:
--------------
branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c
branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_light_frag.glsl
branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_light_vert.glsl
branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_frag.glsl
branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_vert.glsl
Modified: branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c
===================================================================
--- branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c 2013-04-06 19:42:58 UTC (rev 55852)
+++ branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c 2013-04-06 19:46:16 UTC (rev 55853)
@@ -1223,14 +1223,16 @@
glShaderSourceARB(shader->vertex, num_source, source, NULL);
glCompileShaderARB(shader->vertex);
- glGetObjectParameterivARB(shader->vertex, GL_OBJECT_COMPILE_STATUS_ARB, &status);
- if (!status) {
- glGetInfoLogARB(shader->vertex, sizeof(log), &length, log);
+ glGetInfoLogARB(shader->vertex, sizeof(log), &length, log);
+ if (length > 0) {
shader_print_errors("compile", log, vertexcode);
- GPU_shader_free(shader);
- return NULL;
+ glGetObjectParameterivARB(shader->vertex, GL_OBJECT_COMPILE_STATUS_ARB, &status);
+ if (!status) {
+ GPU_shader_free(shader);
+ return NULL;
+ }
}
}
@@ -1248,14 +1250,16 @@
glShaderSourceARB(shader->fragment, num_source, source, NULL);
glCompileShaderARB(shader->fragment);
- glGetObjectParameterivARB(shader->fragment, GL_OBJECT_COMPILE_STATUS_ARB, &status);
- if (!status) {
- glGetInfoLogARB(shader->fragment, sizeof(log), &length, log);
+ glGetInfoLogARB(shader->fragment, sizeof(log), &length, log);
+ if (length > 0) {
shader_print_errors("compile", log, fragcode);
-
- GPU_shader_free(shader);
- return NULL;
+
+ glGetObjectParameterivARB(shader->fragment, GL_OBJECT_COMPILE_STATUS_ARB, &status);
+ if (!status) {
+ GPU_shader_free(shader);
+ return NULL;
+ }
}
}
@@ -1269,8 +1273,18 @@
glShaderSourceARB(shader->geometry, 1, (const char**)&geomcode, NULL);
glCompileShaderARB(shader->geometry);
- glGetObjectParameterivARB(shader->geometry, GL_OBJECT_COMPILE_STATUS_ARB, &status);
+
+ glGetInfoLogARB(shader->geometry, sizeof(log), &length, log);
+ if (length > 0) {
+ shader_print_errors("compile", log, geomcode);
+ glGetObjectParameterivARB(shader->geometry, GL_OBJECT_COMPILE_STATUS_ARB, &status);
+ if (!status) {
+ GPU_shader_free(shader);
+ return NULL;
+ }
+ }
+
// Set the geometry intput type
if (geomin == SHADER_GEOM_IN_POINTS)
temp = GL_POINTS;
@@ -1309,14 +1323,6 @@
glGetIntegerv(GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT, &temp);
glProgramParameteriEXT(shader->object, GL_GEOMETRY_VERTICES_OUT_EXT, temp);
-
- if (!status) {
- glGetInfoLogARB(shader->geometry, sizeof(log), &length, log);
- shader_print_errors("compile", log, geomcode);
-
- GPU_shader_free(shader);
- return NULL;
- }
}
glLinkProgramARB(shader->object);
Modified: branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_light_frag.glsl
===================================================================
--- branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_light_frag.glsl 2013-04-06 19:42:58 UTC (rev 55852)
+++ branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_light_frag.glsl 2013-04-06 19:46:16 UTC (rev 55853)
@@ -1,6 +1,6 @@
//#define ALL_SHADERS
+#line 2
-
#define SPOT 0
#define SUN 1
#define HEMI 2
Modified: branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_light_vert.glsl
===================================================================
--- branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_light_vert.glsl 2013-04-06 19:42:58 UTC (rev 55852)
+++ branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_light_vert.glsl 2013-04-06 19:46:16 UTC (rev 55853)
@@ -1,4 +1,4 @@
-
+#line 1
varying vec3 varposition;
void main()
Modified: branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_frag.glsl
===================================================================
--- branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_frag.glsl 2013-04-06 19:42:58 UTC (rev 55852)
+++ branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_frag.glsl 2013-04-06 19:46:16 UTC (rev 55853)
@@ -1,3 +1,4 @@
+#line 1
#define MAX_TEX 8
struct TextureInfo {
bool enabled;
Modified: branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_vert.glsl
===================================================================
--- branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_vert.glsl 2013-04-06 19:42:58 UTC (rev 55852)
+++ branches/ge_harmony/source/blender/gpu/shaders/gpu_shader_prepass_vert.glsl 2013-04-06 19:46:16 UTC (rev 55853)
@@ -1,3 +1,4 @@
+#line 1
varying vec3 varposition;
varying vec3 varnormal;
varying vec4 varuv[8];
More information about the Bf-blender-cvs
mailing list