[Mesa-dev] [PATCH 09/12] glsl/gsraytrace: Switch to core profile.

2014-02-19 Thread Fabian Bieler
v2: Remove redundant 'core' in GLSL version statement.

Signed-off-by: Fabian Bieler fabianbie...@fastmail.fm
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Ian Romanick ian.d.roman...@intel.com
---
 src/glsl/gsraytrace.cpp | 34 ++
 1 file changed, 26 insertions(+), 8 deletions(-)

diff --git a/src/glsl/gsraytrace.cpp b/src/glsl/gsraytrace.cpp
index 6df6543..44f2674 100644
--- a/src/glsl/gsraytrace.cpp
+++ b/src/glsl/gsraytrace.cpp
@@ -408,6 +408,7 @@ static const char* fsSource =
 uniform vec4 backgroundColor;\n
 uniform int emitNoMore;  \n
  \n
+out vec4 frag_color; \n
  \n
 //---\n
  \n
@@ -493,7 +494,7 @@ static const char* fsSource =
 Isec eyeHit = isec;\n
 if (eyeHit.idx == -1)\n
 {\n
-  gl_FragColor = vec4(backgroundColor.rgb, 0.0);\n
+  frag_color = vec4(backgroundColor.rgb, 0.0);\n
   return;\n
 }\n
 vec3 eyeHitPosition = eyeRay.orig + eyeRay.dir * eyeHit.t;\n
@@ -503,7 +504,7 @@ static const char* fsSource =
 vec3  L  = normalize(lightVec);   
  \n
 float NdotL  = max(dot(N, L), 0.0);   
  \n
 vec3 diffuse = idx2color(eyeHit.idx); // material color of the visible 
point\n
-gl_FragColor = vec4(diffuse * NdotL, 1.0);
  \n
+frag_color = vec4(diffuse * NdotL, 1.0);  
\n
 return;\n
   }\n
 #ifdef SHADOWS \n
@@ -514,7 +515,7 @@ static const char* fsSource =
 { \n
   discard;\n
 } \n
-gl_FragColor = vec4(-1,-1,-1, 0.0);   \n
+frag_color = vec4(-1,-1,-1, 0.0);   \n
 return;   \n
   }   \n
 #endif\n
@@ -534,7 +535,7 @@ static const char* fsSource =
 vec3  L  = normalize(lightVec);   \n
 float NdotL  = max(dot(N, L), 0.0);   \n
 vec3 diffuse = idx2color(reflHit.idx);\n
-gl_FragColor = vec4(diffuse * NdotL * 0.25, 1.0); // material color of 
the visible point\n
+frag_color = vec4(diffuse * NdotL * 0.25, 1.0); // material color of the 
visible point\n
 return;   \n
   }   \n
 #endif\n
@@ -608,6 +609,8 @@ Draw(void)
dir_idxAttribLoc = glGetAttribLocation(program, dir_idx);
uv_stateAttribLoc = glGetAttribLocation(program, uv_state);
 
+   glBindFragDataLocation(program, 0, frag_color);
+
printf(%d\n, i);
//gs.fpwQuery-beginQuery();
//gs.pgQuery-beginQuery();
@@ -755,10 +758,6 @@ Reshape(int width, int height)
WinWidth = width;
WinHeight = height;
glViewport(0, 0, width, height);
-   glMatrixMode(GL_PROJECTION);
-   glLoadIdentity();
-   glMatrixMode(GL_MODELVIEW);
-   glLoadIdentity();
 
{
   size_t nElem = WinWidth*WinHeight*nRayGens;
@@ -911,6 +910,10 @@ Init(void)
glGenBuffers(1, dst);
glGenBuffers(1, eyeRaysAsPoints);
 
+   GLuint vao;
+   glGenVertexArrays(1, vao);
+   glBindVertexArray(vao);
+
printf(\nESC = exit demo\nleft mouse + drag   = rotate 
camera\n\n);
 }
 
@@ -920,9 +923,24 @@ main(int argc, char *argv[])
 {
glutInitWindowSize(WinWidth, WinHeight);
glutInit(argc, argv);
+
+#ifdef HAVE_FREEGLUT
+   glutInitContextVersion(3, 2);
+   glutInitContextProfile(GLUT_CORE_PROFILE);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
+#elif defined __APPLE__
+   glutInitDisplayMode(GLUT_3_2_CORE_PROFILE | GLUT_RGB | GLUT_DOUBLE | 
GLUT_DEPTH);
+#else
+   glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
+#endif
Win = glutCreateWindow(argv[0]);
+
+   // glewInit requires glewExperimentel set to true for core profiles.
+   // Depending on the glew version it also generates GL_INVALID_ENUM.
+   glewExperimental = GL_TRUE;
glewInit();
+   glGetError();
+
glutReshapeFunc(Reshape);
  

Re: [Mesa-dev] [PATCH 09/12] glsl/gsraytrace: Switch to core profile.

2014-02-17 Thread Ian Romanick
On 02/13/2014 02:18 PM, Fabian Bieler wrote:
 Signed-off-by: Fabian Bieler fabianbie...@fastmail.fm
 ---
  src/glsl/gsraytrace.cpp | 40 +---
  1 file changed, 29 insertions(+), 11 deletions(-)
 
 diff --git a/src/glsl/gsraytrace.cpp b/src/glsl/gsraytrace.cpp
 index 6df6543..3eec835 100644
 --- a/src/glsl/gsraytrace.cpp
 +++ b/src/glsl/gsraytrace.cpp
 @@ -70,7 +70,7 @@ float rot[9] = {1,0,0,  0,1,0,   0,0,1};
  
  static const char* vsSource =
\n
 -#version 150  \n
 +#version 150 core \n

I don't think this is strictly necessary.  I'm pretty sure core is the
default if the context is core profile.

  #line  S__LINE__ \n
  #define SHADOWS   \n
  #define RECURSION \n
 @@ -253,7 +253,7 @@ static const char* vsSource =
  
  
  static const char* gsSource = 
 -#version 150 \n
 +#version 150 core\n
  #line  S__LINE__ \n
  layout(points) in;   \n
  layout(points, max_vertices = 3) out;\n
 @@ -393,7 +393,7 @@ static const char* gsSource =
  }\n;
  
  static const char* fsSource = 
 -#version 150 \n
 +#version 150 core\n
  #line  S__LINE__ \n
   \n
  #define SHADOWS  \n
 @@ -408,6 +408,7 @@ static const char* fsSource =
  uniform vec4 backgroundColor;\n
  uniform int emitNoMore;  \n
   \n
 +out vec4 frag_color; \n
   \n
  //---\n
   \n
 @@ -493,7 +494,7 @@ static const char* fsSource =
  Isec eyeHit = isec;\n
  if (eyeHit.idx == -1)\n
  {\n
 -  gl_FragColor = vec4(backgroundColor.rgb, 0.0);\n
 +  frag_color = vec4(backgroundColor.rgb, 0.0);\n
return;\n
  }\n
  vec3 eyeHitPosition = eyeRay.orig + eyeRay.dir * eyeHit.t;\n
 @@ -503,7 +504,7 @@ static const char* fsSource =
  vec3  L  = normalize(lightVec); 
 \n
  float NdotL  = max(dot(N, L), 0.0); 
 \n
  vec3 diffuse = idx2color(eyeHit.idx); // material color of the visible 
 point\n
 -gl_FragColor = vec4(diffuse * NdotL, 1.0);  
 \n
 +frag_color = vec4(diffuse * NdotL, 1.0);
   \n
  return;
 \n
}
 \n
  #ifdef SHADOWS 
 \n
 @@ -514,7 +515,7 @@ static const char* fsSource =
  { \n
discard;\n
  } \n
 -gl_FragColor = vec4(-1,-1,-1, 0.0);   \n
 +frag_color = vec4(-1,-1,-1, 0.0);   \n
  return;   \n
}   \n
  #endif\n
 @@ -534,7 +535,7 @@ static const char* fsSource =
  vec3  L  = normalize(lightVec);   \n
  float NdotL  = max(dot(N, L), 0.0);   \n
  vec3 diffuse = idx2color(reflHit.idx);\n
 -gl_FragColor = vec4(diffuse * NdotL * 0.25, 1.0); // material color of 
 the visible point\n
 +frag_color = vec4(diffuse * NdotL * 0.25, 1.0); // material color of 
 the visible point\n
  return;   \n
}   \n
  #endif\n
 @@ -608,6 +609,8 @@ Draw(void)
 dir_idxAttribLoc = glGetAttribLocation(program, dir_idx);
 uv_stateAttribLoc = glGetAttribLocation(program, uv_state);
  
 +   glBindFragDataLocation(program, 0, frag_color);
 +
 

[Mesa-dev] [PATCH 09/12] glsl/gsraytrace: Switch to core profile.

2014-02-13 Thread Fabian Bieler
Signed-off-by: Fabian Bieler fabianbie...@fastmail.fm
---
 src/glsl/gsraytrace.cpp | 40 +---
 1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/src/glsl/gsraytrace.cpp b/src/glsl/gsraytrace.cpp
index 6df6543..3eec835 100644
--- a/src/glsl/gsraytrace.cpp
+++ b/src/glsl/gsraytrace.cpp
@@ -70,7 +70,7 @@ float rot[9] = {1,0,0,  0,1,0,   0,0,1};
 
 static const char* vsSource =
   \n
-#version 150  \n
+#version 150 core \n
 #line  S__LINE__ \n
 #define SHADOWS   \n
 #define RECURSION \n
@@ -253,7 +253,7 @@ static const char* vsSource =
 
 
 static const char* gsSource = 
-#version 150 \n
+#version 150 core\n
 #line  S__LINE__ \n
 layout(points) in;   \n
 layout(points, max_vertices = 3) out;\n
@@ -393,7 +393,7 @@ static const char* gsSource =
 }\n;
 
 static const char* fsSource = 
-#version 150 \n
+#version 150 core\n
 #line  S__LINE__ \n
  \n
 #define SHADOWS  \n
@@ -408,6 +408,7 @@ static const char* fsSource =
 uniform vec4 backgroundColor;\n
 uniform int emitNoMore;  \n
  \n
+out vec4 frag_color; \n
  \n
 //---\n
  \n
@@ -493,7 +494,7 @@ static const char* fsSource =
 Isec eyeHit = isec;\n
 if (eyeHit.idx == -1)\n
 {\n
-  gl_FragColor = vec4(backgroundColor.rgb, 0.0);\n
+  frag_color = vec4(backgroundColor.rgb, 0.0);\n
   return;\n
 }\n
 vec3 eyeHitPosition = eyeRay.orig + eyeRay.dir * eyeHit.t;\n
@@ -503,7 +504,7 @@ static const char* fsSource =
 vec3  L  = normalize(lightVec);   
  \n
 float NdotL  = max(dot(N, L), 0.0);   
  \n
 vec3 diffuse = idx2color(eyeHit.idx); // material color of the visible 
point\n
-gl_FragColor = vec4(diffuse * NdotL, 1.0);
  \n
+frag_color = vec4(diffuse * NdotL, 1.0);  
\n
 return;\n
   }\n
 #ifdef SHADOWS \n
@@ -514,7 +515,7 @@ static const char* fsSource =
 { \n
   discard;\n
 } \n
-gl_FragColor = vec4(-1,-1,-1, 0.0);   \n
+frag_color = vec4(-1,-1,-1, 0.0);   \n
 return;   \n
   }   \n
 #endif\n
@@ -534,7 +535,7 @@ static const char* fsSource =
 vec3  L  = normalize(lightVec);   \n
 float NdotL  = max(dot(N, L), 0.0);   \n
 vec3 diffuse = idx2color(reflHit.idx);\n
-gl_FragColor = vec4(diffuse * NdotL * 0.25, 1.0); // material color of 
the visible point\n
+frag_color = vec4(diffuse * NdotL * 0.25, 1.0); // material color of the 
visible point\n
 return;   \n
   }   \n
 #endif\n
@@ -608,6 +609,8 @@ Draw(void)
dir_idxAttribLoc = glGetAttribLocation(program, dir_idx);
uv_stateAttribLoc = glGetAttribLocation(program, uv_state);
 
+   glBindFragDataLocation(program, 0, frag_color);
+
printf(%d\n, i);
//gs.fpwQuery-beginQuery();
//gs.pgQuery-beginQuery();
@@ -755,10 +758,6 @@ Reshape(int width, int height)
WinWidth = width;
WinHeight = height;
glViewport(0, 0, width, height);
-   glMatrixMode(GL_PROJECTION);
-   

[Mesa-dev] [PATCH 09/12] glsl/gsraytrace: Switch to core profile.

2014-02-05 Thread Fabian Bieler
Signed-off-by: Fabian Bieler fabianbie...@fastmail.fm
---
 src/glsl/gsraytrace.cpp | 40 +---
 1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/src/glsl/gsraytrace.cpp b/src/glsl/gsraytrace.cpp
index adb6c7a..03d5f30 100644
--- a/src/glsl/gsraytrace.cpp
+++ b/src/glsl/gsraytrace.cpp
@@ -70,7 +70,7 @@ float rot[9] = {1,0,0,  0,1,0,   0,0,1};
 
 static const char* vsSource =
   \n
-#version 150  \n
+#version 150 core \n
 #line  S__LINE__ S__LINE__ \n
 #define SHADOWS   \n
 #define RECURSION \n
@@ -253,7 +253,7 @@ static const char* vsSource =
 
 
 static const char* gsSource = 
-#version 150 \n
+#version 150 core\n
 #line  S__LINE__ S__LINE__ \n
 layout(points) in;   \n
 layout(points, max_vertices = 3) out;\n
@@ -393,7 +393,7 @@ static const char* gsSource =
 }\n;
 
 static const char* fsSource = 
-#version 150 \n
+#version 150 core\n
 #line  S__LINE__ S__LINE__ \n
  \n
 #define SHADOWS  \n
@@ -408,6 +408,7 @@ static const char* fsSource =
 uniform vec4 backgroundColor;\n
 uniform int emitNoMore;  \n
  \n
+out vec4 frag_color; \n
  \n
 //---\n
  \n
@@ -493,7 +494,7 @@ static const char* fsSource =
 Isec eyeHit = isec;\n
 if (eyeHit.idx == -1)\n
 {\n
-  gl_FragColor = vec4(backgroundColor.rgb, 0.0);\n
+  frag_color = vec4(backgroundColor.rgb, 0.0);\n
   return;\n
 }\n
 vec3 eyeHitPosition = eyeRay.orig + eyeRay.dir * eyeHit.t;\n
@@ -503,7 +504,7 @@ static const char* fsSource =
 vec3  L  = normalize(lightVec);   
  \n
 float NdotL  = max(dot(N, L), 0.0);   
  \n
 vec3 diffuse = idx2color(eyeHit.idx); // material color of the visible 
point\n
-gl_FragColor = vec4(diffuse * NdotL, 1.0);
  \n
+frag_color = vec4(diffuse * NdotL, 1.0);  
\n
 return;\n
   }\n
 #ifdef SHADOWS \n
@@ -514,7 +515,7 @@ static const char* fsSource =
 { \n
   discard;\n
 } \n
-gl_FragColor = vec4(-1,-1,-1, 0.0);   \n
+frag_color = vec4(-1,-1,-1, 0.0);   \n
 return;   \n
   }   \n
 #endif\n
@@ -534,7 +535,7 @@ static const char* fsSource =
 vec3  L  = normalize(lightVec);   \n
 float NdotL  = max(dot(N, L), 0.0);   \n
 vec3 diffuse = idx2color(reflHit.idx);\n
-gl_FragColor = vec4(diffuse * NdotL * 0.25, 1.0); // material color of 
the visible point\n
+frag_color = vec4(diffuse * NdotL * 0.25, 1.0); // material color of the 
visible point\n
 return;   \n
   }   \n
 #endif\n
@@ -608,6 +609,8 @@ Draw(void)
dir_idxAttribLoc = glGetAttribLocation(program, dir_idx);
uv_stateAttribLoc = glGetAttribLocation(program, uv_state);
 
+   glBindFragDataLocation(program, 0, frag_color);
+
printf(%d\n, i);
//gs.fpwQuery-beginQuery();
//gs.pgQuery-beginQuery();
@@ -755,10 +758,6 @@ Reshape(int width, int height)
WinWidth = width;
WinHeight = height;
glViewport(0, 0, width, height);
-