summaryrefslogtreecommitdiff
path: root/indra/llrender
diff options
context:
space:
mode:
authorsimon <none@none>2013-05-20 11:18:12 -0700
committersimon <none@none>2013-05-20 11:18:12 -0700
commitabdbf45aaa05f201afd9e2f6c6be87150be2c890 (patch)
tree702d3eef9acc8d966e4c5c40b08830b511e9e841 /indra/llrender
parent2b41a539aa988029976cf96a1ac71d0fc2087c77 (diff)
MAINT-2616 : Updated my Intel driver and now have orange in buttons and
Inventory pull down bar causing blinks to screen. Pulled in FS code, Reviewed by Kelly
Diffstat (limited to 'indra/llrender')
-rwxr-xr-xindra/llrender/llglslshader.cpp1
-rwxr-xr-xindra/llrender/llglslshader.h3
-rw-r--r--indra/llrender/llrender2dutils.cpp22
3 files changed, 24 insertions, 2 deletions
diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp
index 298a03f32a..8a0ca95a78 100755
--- a/indra/llrender/llglslshader.cpp
+++ b/indra/llrender/llglslshader.cpp
@@ -57,6 +57,7 @@ bool LLGLSLShader::sNoFixedFunction = false;
//UI shader -- declared here so llui_libtest will link properly
LLGLSLShader gUIProgram;
LLGLSLShader gSolidColorProgram;
+LLGLSLShader gSolidColorProgramIntel;
BOOL shouldChange(const LLVector4& v1, const LLVector4& v2)
{
diff --git a/indra/llrender/llglslshader.h b/indra/llrender/llglslshader.h
index 019d5a86d6..cd097b8e0b 100755
--- a/indra/llrender/llglslshader.h
+++ b/indra/llrender/llglslshader.h
@@ -160,5 +160,8 @@ extern LLGLSLShader gSolidColorProgram;
//Alpha mask shader (declared here so llappearance can access properly)
extern LLGLSLShader gAlphaMaskProgram;
+// Solid color Shader for Intel Graphics
+extern LLGLSLShader gSolidColorProgramIntel;
+
#endif
diff --git a/indra/llrender/llrender2dutils.cpp b/indra/llrender/llrender2dutils.cpp
index d3cfbaf03a..3c6848efaa 100644
--- a/indra/llrender/llrender2dutils.cpp
+++ b/indra/llrender/llrender2dutils.cpp
@@ -443,7 +443,16 @@ void gl_draw_scaled_image_with_border(S32 x, S32 y, S32 width, S32 height, LLTex
{
if (LLGLSLShader::sNoFixedFunction)
{
- gSolidColorProgram.bind();
+ // When running with a intel gfx card, do not use the solidcolor?.glsl files. Instead use a custom one
+ // for those cards. Passing color as a uniform and not a shader attribute
+ if(gGLManager.mIsIntel)
+ {
+ gSolidColorProgramIntel.bind();
+ }
+ else
+ {
+ gSolidColorProgram.bind();
+ }
}
else
{
@@ -454,7 +463,16 @@ void gl_draw_scaled_image_with_border(S32 x, S32 y, S32 width, S32 height, LLTex
gGL.getTexUnit(0)->bind(image, true);
- gGL.color4fv(color.mV);
+ // When running with a intel gfx card, do not use the solidcolor?.glsl files. Instead use a custom one
+ // for those cards. Passing color as a uniform and not a shader attribute
+ if( solid_color && LLGLSLShader::sNoFixedFunction && gGLManager.mIsIntel )
+ {
+ gGL.diffuseColor4fv(color.mV);
+ }
+ else
+ {
+ gGL.color4fv(color.mV);
+ }
const S32 NUM_VERTICES = 9 * 4; // 9 quads
LLVector2 uv[NUM_VERTICES];