- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Whilst testing some code on a broad range of hardware and drivers I came across a crash bug when running on a Mac Mini with Windows 7 installed on it. It's got an HD Graphics 4000 onboard, and I'm using OpenGL 3.2 Core Profile, only extension (bar ubiquitous ones for texture compression) is ARB_debug_output. I managed to wittle it down from a crash bug to just failing to compile a shader by removing the GLSLoptimiser step from our shader building pipeline. The code which causes the crash is as follows:
#version 140 struct SpeedTreeInstance { vec4 m_rotationQuat; vec3 m_translation; float m_uniformScale; vec3 m_scale; float m_materialID; float m_windMatOffset; float m_blendFactor; float m_alphaRef; float m_padding; }; uniform vec4 g_nvStereoParams = vec4(0.0, 0.0, 0.0, 0.0); uniform vec4 g_debugVisualizer = vec4(1.0, 1.0, 1.0, 1.0); uniform vec4 g_HDRParams = vec4(0.0, 1.0, 1.0, 1.0); uniform vec4 g_gammaCorrection = vec4(1.0, 1.0, 0.0, 0.0); uniform mat4 g_viewMat; uniform mat4 g_invViewMat; uniform mat4 g_projMat; uniform vec4 g_cameraPos; uniform SpeedTreeInstance g_instance; uniform bool g_useHighQuality = bool(1); uniform bool g_useZPrePass = bool(0); uniform bool alphaTestEnable = bool(1); uniform mat4 g_windMatrices[6]; uniform vec4 g_leafAngles[64]; uniform vec4 g_leafAngleScalars; uniform bool g_useAlpha = bool(0); in vec4 aPosition; in vec3 aNormal; in vec4 aTexCoord0; in vec4 aTexCoord1; in vec3 aTexCoord2; in vec3 aTangent; in vec2 aBinormal; out vec2 xlv_TEXCOORD0; out vec4 xlv_TEXCOORD1; out vec3 xlv_TEXCOORD2; out vec3 xlv_TEXCOORD3; out vec3 xlv_TEXCOORD4; out vec3 xlv_TEXCOORD5; void main () { vec2 tmpvar_1; vec4 tmpvar_2; tmpvar_2 = g_instance.m_rotationQuat; vec3 corner_3; vec3 centerPoint_4; centerPoint_4 = (aPosition.xyz * g_instance.m_scale); vec3 tmpvar_5; vec3 b_6; b_6 = (((tmpvar_2.yzx * centerPoint_4.zxy) - (tmpvar_2.zxy * centerPoint_4.yzx)) + (tmpvar_2.w * centerPoint_4)); tmpvar_5 = (centerPoint_4 + (2.0 * ( (tmpvar_2.yzx * b_6.zxy) - (tmpvar_2.zxy * b_6.yzx) ))); vec2 vWindInfo_7; vWindInfo_7 = (aTexCoord0.zw + vec2(g_instance.m_windMatOffset)); vec2 tmpvar_8; tmpvar_8 = fract(vWindInfo_7); vec2 tmpvar_9; tmpvar_9 = (0.3 * (vWindInfo_7 - tmpvar_8)); mat3 tmpvar_10; mat4 tmpvar_11; tmpvar_11 = g_windMatrices[int(tmpvar_9.x)]; tmpvar_10[0] = tmpvar_11[0].xyz; tmpvar_10[1] = tmpvar_11[1].xyz; tmpvar_10[2] = tmpvar_11[2].xyz; vec3 tmpvar_12; tmpvar_12 = mix (tmpvar_5, (tmpvar_5 * tmpvar_10), tmpvar_8.xxx); mat3 tmpvar_13; mat4 tmpvar_14; tmpvar_14 = g_windMatrices[int(tmpvar_9.y)]; tmpvar_13[0] = tmpvar_14[0].xyz; tmpvar_13[1] = tmpvar_14[1].xyz; tmpvar_13[2] = tmpvar_14[2].xyz; centerPoint_4 = mix (tmpvar_12, (tmpvar_12 * tmpvar_13), tmpvar_8.yyy); vec3 tmpvar_15; tmpvar_15 = vec4[5](vec4(0.5, 0.5, 0.0, 0.0), vec4(-0.5, 0.5, 0.0, 0.0), vec4(-0.5, -0.5, 0.0, 0.0), vec4(0.5, -0.5, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0))[int(aTexCoord2.y)].xyz; corner_3.z = tmpvar_15.z; corner_3.xy = (tmpvar_15.xy + aBinormal); corner_3 = (corner_3 * (g_instance.m_uniformScale * clamp ( (g_cameraPos.w * 7.0) , 0.0, 1.0))); corner_3 = (corner_3 * aTexCoord1.zwz); vec2 tmpvar_16; tmpvar_16 = (g_leafAngleScalars.xy * g_leafAngles[int(aTexCoord2.x)].xy); vec2 sc_17; float x_18; x_18 = (aTexCoord1.y * 0.5); sc_17.x = sin(x_18); sc_17.y = cos(x_18); vec4 tmpvar_19; tmpvar_19.xyz = (vec3(1.0, 0.0, 0.0) * sc_17.x); tmpvar_19.w = sc_17.y; vec2 sc_20; float x_21; x_21 = ((aTexCoord1.x - tmpvar_16.y) * 0.5); sc_20.x = sin(x_21); sc_20.y = cos(x_21); vec4 tmpvar_22; tmpvar_22.xyz = (vec3(0.0, 1.0, 0.0) * sc_20.x); tmpvar_22.w = sc_20.y; vec4 tmpvar_23; tmpvar_23.xyz = ((( (tmpvar_19.yzx * tmpvar_22.zxy) - (tmpvar_19.zxy * tmpvar_22.yzx) ) + (tmpvar_19.xyz * sc_20.y)) + (tmpvar_22.xyz * sc_17.y)); tmpvar_23.w = ((sc_17.y * sc_20.y) - dot (tmpvar_19.xyz, tmpvar_22.xyz)); vec2 sc_24; float x_25; x_25 = (tmpvar_16.x * 0.5); sc_24.x = sin(x_25); sc_24.y = cos(x_25); vec4 tmpvar_26; tmpvar_26.xyz = (vec3(0.0, 0.0, 1.0) * sc_24.x); tmpvar_26.w = sc_24.y; vec4 tmpvar_27; tmpvar_27.xyz = ((( (tmpvar_23.yzx * tmpvar_26.zxy) - (tmpvar_23.zxy * tmpvar_26.yzx) ) + (tmpvar_23.xyz * sc_24.y)) + (tmpvar_26.xyz * tmpvar_23.w)); tmpvar_27.w = ((tmpvar_23.w * sc_24.y) - dot (tmpvar_23.xyz, tmpvar_26.xyz)); vec3 b_28; b_28 = (((tmpvar_27.yzx * corner_3.zxy) - (tmpvar_27.zxy * corner_3.yzx)) + (tmpvar_27.w * corner_3)); corner_3 = (corner_3 + (2.0 * ( (tmpvar_27.yzx * b_28.zxy) - (tmpvar_27.zxy * b_28.yzx) ))); vec4 tmpvar_29; tmpvar_29.w = 1.0; tmpvar_29.xyz = (centerPoint_4 + g_instance.m_translation); vec3 tmpvar_30; tmpvar_30 = ((tmpvar_29 * g_viewMat).xyz + corner_3); centerPoint_4 = tmpvar_30; vec4 tmpvar_31; tmpvar_31.w = 1.0; tmpvar_31.xyz = tmpvar_30; vec4 tmpvar_32; tmpvar_32 = (tmpvar_31 * g_projMat); vec4 tmpvar_33; tmpvar_33.xy = aTexCoord0.xy; tmpvar_33.z = aTexCoord2.z; tmpvar_33.w = g_instance.m_alphaRef; tmpvar_1.x = tmpvar_32.w; tmpvar_1.y = g_instance.m_materialID; vec3 tmpvar_34; vec4 q_35; q_35 = g_instance.m_rotationQuat; vec3 b_36; b_36 = (((q_35.yzx * aNormal.zxy) - (q_35.zxy * aNormal.yzx)) + (q_35.w * aNormal)); tmpvar_34 = (aNormal + (2.0 * ( (q_35.yzx * b_36.zxy) - (q_35.zxy * b_36.yzx) ))); vec3 tmpvar_37; vec4 q_38; q_38 = g_instance.m_rotationQuat; vec3 b_39; b_39 = (((q_38.yzx * aTangent.zxy) - (q_38.zxy * aTangent.yzx)) + (q_38.w * aTangent)); tmpvar_37 = (aTangent + (2.0 * ( (q_38.yzx * b_39.zxy) - (q_38.zxy * b_39.yzx) ))); gl_Position = tmpvar_32; xlv_TEXCOORD0 = tmpvar_1; xlv_TEXCOORD1 = tmpvar_33; xlv_TEXCOORD2 = tmpvar_37; xlv_TEXCOORD3 = normalize(((tmpvar_34.yzx * tmpvar_37.zxy) - (tmpvar_34.zxy * tmpvar_37.yzx))); xlv_TEXCOORD4 = tmpvar_34; xlv_TEXCOORD5 = (tmpvar_31 * g_invViewMat).xyz; } // inputs: 7, stats: 104 alu 0 tex 0 flow
The 'unoptimised' code which simply fails to compile, but is functionally identical to the code as above is this:
#version 140 void xll_sincos_f_f_f( float x, out float s, out float c) { s = sin(x); c = cos(x); } void xll_sincos_vf2_vf2_vf2( vec2 x, out vec2 s, out vec2 c) { s = sin(x); c = cos(x); } void xll_sincos_vf3_vf3_vf3( vec3 x, out vec3 s, out vec3 c) { s = sin(x); c = cos(x); } void xll_sincos_vf4_vf4_vf4( vec4 x, out vec4 s, out vec4 c) { s = sin(x); c = cos(x); } void xll_sincos_mf2x2_mf2x2_mf2x2( mat2 x, out mat2 s, out mat2 c) { s = mat2( sin ( x[0] ), sin ( x[1] ) ); c = mat2( cos ( x[0] ), cos ( x[1] ) ); } void xll_sincos_mf3x3_mf3x3_mf3x3( mat3 x, out mat3 s, out mat3 c) { s = mat3( sin ( x[0] ), sin ( x[1] ), sin ( x[2] ) ); c = mat3( cos ( x[0] ), cos ( x[1] ), cos ( x[2] ) ); } void xll_sincos_mf4x4_mf4x4_mf4x4( mat4 x, out mat4 s, out mat4 c) { s = mat4( sin ( x[0] ), sin ( x[1] ), sin ( x[2] ), sin ( x[3] ) ); c = mat4( cos ( x[0] ), cos ( x[1] ), cos ( x[2] ), cos ( x[3] ) ); } float xll_saturate_f( float x) { return clamp( x, 0.0, 1.0); } vec2 xll_saturate_vf2( vec2 x) { return clamp( x, 0.0, 1.0); } vec3 xll_saturate_vf3( vec3 x) { return clamp( x, 0.0, 1.0); } vec4 xll_saturate_vf4( vec4 x) { return clamp( x, 0.0, 1.0); } mat2 xll_saturate_mf2x2(mat2 m) { return mat2( clamp(m[0], 0.0, 1.0), clamp(m[1], 0.0, 1.0)); } mat3 xll_saturate_mf3x3(mat3 m) { return mat3( clamp(m[0], 0.0, 1.0), clamp(m[1], 0.0, 1.0), clamp(m[2], 0.0, 1.0)); } mat4 xll_saturate_mf4x4(mat4 m) { return mat4( clamp(m[0], 0.0, 1.0), clamp(m[1], 0.0, 1.0), clamp(m[2], 0.0, 1.0), clamp(m[3], 0.0, 1.0)); } #line 60 struct SunLight { vec4 m_color; vec4 m_ambient; vec3 m_dir; }; #line 68 struct FogParams { float m_enabled; float m_density; float m_start; float m_end; vec4 m_color; vec4 m_outerBB; vec4 m_innerBB; }; #line 12 struct PointLight { vec4 position; vec4 colour; vec4 attenuation; vec4 padding; }; #line 21 struct SpotLight { vec4 position; vec4 colour; vec4 attenuation; vec4 direction; }; #line 8 struct G_BUFFER_LAYOUT { vec4 color0; vec4 color1; vec4 color2; }; #line 17 struct SpeedTreeInstance { vec4 m_rotationQuat; vec3 m_translation; float m_uniformScale; vec3 m_scale; float m_materialID; float m_windMatOffset; float m_blendFactor; float m_alphaRef; float m_padding; }; #line 34 struct SpeedTreeInstancingStream { vec4 m_row0; vec4 m_row1; vec4 m_row2; vec4 m_row3; }; #line 154 struct VS_INPUT_BRANCHES { vec4 pos; vec3 normal; vec4 tcWindInfo; vec3 tangent; }; #line 191 struct VS_INPUT_LEAF { vec4 pos; vec3 normal; vec4 tcWindInfo; vec4 rotGeomInfo; vec3 extraInfo; vec3 tangent; vec2 pivotInfo; }; #line 4 struct ZPassOutput { vec4 pos; vec3 tcAlphaRef; }; #line 251 struct VS_INPUT_BB { vec4 pos; vec3 lightNormal; vec3 alphaNormal; vec2 tc; vec3 binormal; vec3 tangent; }; #line 105 struct VS_OUTPUT { vec4 pos; vec2 tc; }; #line 98 struct VS_INPUT { vec4 pos; vec2 tc; }; #line 206 struct LeafVS2PS { vec4 pos; vec2 linearZMatID; vec4 tcExtra; vec3 tangent; vec3 binormal; vec3 normal; vec3 wPos; }; #line 283 struct BranchVS2PS { vec4 pos; vec2 linearZMatID; vec3 tcAlphaRef; vec3 normal; vec3 tangent; vec3 binormal; vec3 wPos; }; #line 357 struct BillboardVS2PS { vec4 pos; vec2 linearZMatID; vec3 tcAlphaRef; vec3 tangent; vec3 binormal; vec3 normal; vec3 wPos; }; uniform float g_time; uniform vec4 g_nvStereoParams = vec4( 0.0, 0.0, 0.0, 0.0); uniform vec4 g_debugVisualizer = vec4( 1.0, 1.0, 1.0, 1.0); uniform vec4 g_windAnimation; uniform SunLight g_sunLight; uniform FogParams g_fogParams; uniform float g_sunVisibility; uniform mat4 g_SSAOParams; uniform vec4 g_HDRParams = vec4( 0.0, 1.0, 1.0, 1.0); uniform vec4 g_gammaCorrection = vec4( 1.0, 1.0, 0.0, 0.0); uniform vec4 g_shadowBlendParams; uniform vec4 g_specularParams; uniform bool g_enableShadows; uniform sampler2D g_GBufferChannel0Sml; uniform sampler2D g_GBufferChannel1Sml; uniform sampler2D g_GBufferChannel2Sml; uniform vec4 g_screen; uniform vec4 g_invScreen; uniform mat4 g_viewMat; uniform mat4 g_invViewMat; uniform mat4 g_projMat; uniform mat4 g_viewProjMat; uniform mat4 g_invViewProjMat; uniform mat4 g_lastViewProjMat; uniform mat4 g_environmentMat; uniform mat4 g_cameraDirs; uniform vec4 g_cameraPos; uniform vec4 g_lodCameraPos; uniform vec3 g_cameraDir; uniform vec4 g_farNearPlane; uniform vec4 g_farPlane; uniform vec4 g_clipPlane0; uniform vec4 g_clipPlane1; uniform vec4 g_clipPlane2; uniform vec4 g_clipPlane3; int G_RENDERING_PASS_COLOR = 0; int G_RENDERING_PASS_REFLECTION = 1; int G_RENDERING_PASS_SHADOWS = 2; int G_RENDERING_PASS_DEPTH = 3; bool g_isDual = false; int G_STENCIL_SYSTEM_WRITE_MASK = 240; int G_STENCIL_CUMSTOM_WRITE_MASK = 15; int G_STENCIL_USAGE_TERRAIN = 16; int G_STENCIL_USAGE_SPEEDTREE = 32; int G_STENCIL_USAGE_FLORA = 64; int G_STENCIL_USAGE_OTHER_OPAQUE = 128; int G_STENCIL_USAGE_ALL_OPAQUE = 240; int G_OBJECT_KIND_TERRAIN = 1; int G_OBJECT_KIND_FLORA = 2; int G_OBJECT_KIND_SPEEDTREE = 3; int G_OBJECT_KIND_STATIC = 4; int G_OBJECT_KIND_DYNAMIC = 5; uniform sampler2D g_atan2LUTMapSml; const int G_NUM_WIND_MATRICES = 6; uniform SpeedTreeInstance g_instance; uniform bool g_useHighQuality = true; uniform bool g_useZPrePass = false; uniform vec4 g_material[2]; uniform float g_leafLightAdj; uniform bool alphaTestEnable = true; uniform float g_leafRockFar; uniform mat4 g_windMatrices[6]; uniform vec4 g_leafAngles[64]; uniform vec4 g_leafAngleScalars; const vec4[5] g_leafUnitSquare = vec4[5]( vec4( 0.5, 0.5, 0.0, 0.0), vec4( -0.5, 0.5, 0.0, 0.0), vec4( -0.5, -0.5, 0.0, 0.0), vec4( 0.5, -0.5, 0.0, 0.0), vec4( 0.0, 0.0, 0.0, 0.0)); float g_specularFadeoutDist = 0.002; uniform sampler2D speedTreeDiffuseSampler; uniform sampler2D bbNormalSampler; uniform sampler2D speedTreeNormalSampler; uniform sampler2D g_nvStereoParamsMapSpl; uniform bool g_useAlpha = false; uniform sampler2D g_srcMapSampler; #line 136 vec3 applyWind( in vec3 vPosition, in vec2 vWindInfo, in float windMatrixOffset ) { vWindInfo.xy += vec2( windMatrixOffset); vec2 vWeights = fract(vWindInfo.xy); vec2 vIndices = (((vWindInfo - vWeights) * 0.05) * 6.0); vec3 vWindEffect = mix( vPosition.xyz, (vPosition * mat3( g_windMatrices[int(vIndices.x)])), vec3( vWeights.x)); return mix( vWindEffect, (vWindEffect * mat3( g_windMatrices[int(vIndices.y)])), vec3( vWeights.y)); } #line 21 vec4 qmul( in vec4 a, in vec4 b ) { return vec4( ((cross( a.xyz, b.xyz) + (a.xyz * b.w)) + (b.xyz * a.w)), ((a.w * b.w) - dot( a.xyz, b.xyz))); } #line 6 vec3 qrot( in vec3 v, in vec4 q ) { return (v + (2.0 * cross( q.xyz, (cross( q.xyz, v) + (q.w * v))))); } #line 28 vec4 quat( in float angle, in vec3 axis ) { vec2 sc; xll_sincos_f_f_f( (angle * 0.5), sc.x, sc.y); return vec4( (axis * sc.x), sc.y); } #line 204 vec4 calcLeafVertex2( in VS_INPUT_LEAF i, in SpeedTreeInstance inst, in bool enableWind, in bool enableRockAndRustle ) { vec3 centerPoint = i.pos.xyz; centerPoint.xyz *= inst.m_scale.xyz; centerPoint = qrot( centerPoint, inst.m_rotationQuat); if (enableWind){ centerPoint = applyWind( centerPoint, i.tcWindInfo.zw, inst.m_windMatOffset); } centerPoint += inst.m_translation; vec3 corner = g_leafUnitSquare[int(i.extraInfo.y)].xyz; corner.xy += i.pivotInfo.xy; corner.xyz *= (inst.m_uniformScale * xll_saturate_f((g_cameraPos.w * 7.0))); corner.xyz *= i.rotGeomInfo.zwz; if (enableRockAndRustle){ float fRotAngleX = i.rotGeomInfo.x; float fRotAngleY = i.rotGeomInfo.y; vec2 leafRockAndRustle = (g_leafAngleScalars.xy * g_leafAngles[int(i.extraInfo.x)].xy); vec4 combQuat = quat( fRotAngleY, vec3( 1.0, 0.0, 0.0)); combQuat = qmul( combQuat, quat( (fRotAngleX - leafRockAndRustle.y), vec3( 0.0, 1.0, 0.0))); combQuat = qmul( combQuat, quat( leafRockAndRustle.x, vec3( 0.0, 0.0, 1.0))); corner = qrot( corner, combQuat); } centerPoint = (vec4( centerPoint, 1.0) * g_viewMat).xyz; centerPoint += corner; return vec4( centerPoint, 1.0); } #line 218 LeafVS2PS vs_leaf_3_0( in VS_INPUT_LEAF i, bool highQuality ) { LeafVS2PS o = LeafVS2PS(vec4(0.0, 0.0, 0.0, 0.0), vec2(0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)); vec4 outPos = calcLeafVertex2( i, g_instance, true, highQuality); o.pos = (outPos * g_projMat); o.tcExtra = vec4( i.tcWindInfo.xy, i.extraInfo.z, g_instance.m_alphaRef); o.linearZMatID.x = o.pos.w; o.linearZMatID.y = g_instance.m_materialID; if (highQuality){ o.normal = qrot( i.normal, g_instance.m_rotationQuat); o.tangent = qrot( i.tangent, g_instance.m_rotationQuat); o.binormal = normalize(cross( o.normal, o.tangent)); o.wPos = vec3( (outPos * g_invViewMat)); } else{ o.normal = qrot( i.normal, g_instance.m_rotationQuat); } return o; } #line 986 LeafVS2PS xlat_main( in VS_INPUT_LEAF i ) { return vs_leaf_3_0( i, true); } in vec4 aPosition; in vec3 aNormal; in vec4 aTexCoord0; in vec4 aTexCoord1; in vec3 aTexCoord2; in vec3 aTangent; in vec2 aBinormal; out vec2 xlv_TEXCOORD0; out vec4 xlv_TEXCOORD1; out vec3 xlv_TEXCOORD2; out vec3 xlv_TEXCOORD3; out vec3 xlv_TEXCOORD4; out vec3 xlv_TEXCOORD5; void main() { LeafVS2PS xl_retval; VS_INPUT_LEAF xlt_i; xlt_i.pos = vec4(aPosition); xlt_i.normal = vec3(aNormal); xlt_i.tcWindInfo = vec4(aTexCoord0); xlt_i.rotGeomInfo = vec4(aTexCoord1); xlt_i.extraInfo = vec3(aTexCoord2); xlt_i.tangent = vec3(aTangent); xlt_i.pivotInfo = vec2(aBinormal); xl_retval = xlat_main( xlt_i); gl_Position = vec4(xl_retval.pos); xlv_TEXCOORD0 = vec2(xl_retval.linearZMatID); xlv_TEXCOORD1 = vec4(xl_retval.tcExtra); xlv_TEXCOORD2 = vec3(xl_retval.tangent); xlv_TEXCOORD3 = vec3(xl_retval.binormal); xlv_TEXCOORD4 = vec3(xl_retval.normal); xlv_TEXCOORD5 = vec3(xl_retval.wPos); } // uniforms: // g_cameraPos:CameraPos type 12 arrsize 0 // g_instance:<none> type 31 arrsize 0 // g_invViewMat:InvView type 21 arrsize 0 // g_leafAngleScalars:<none> type 12 arrsize 0 // g_leafAngles:<none> type 12 arrsize 64 // g_projMat:Projection type 21 arrsize 0 // g_viewMat:View type 21 arrsize 0 // g_windMatrices:<none> type 21 arrsize 6 // highQuality:<none> type 1 arrsize 0
The error (simplified) is "ARB_debug_output: source=ShaderCompiler type=Error id=0 severity=High GLSL compile failed for shader 499, "": ERROR: 0:430: 'const 5-element array of 4-component vector of float' : cannot declare arrays of this qualifier".
The problematic line being:
const vec4[5] g_leafUnitSquare = vec4[5]( vec4( 0.5, 0.5, 0.0, 0.0), vec4( -0.5, 0.5, 0.0, 0.0), vec4( -0.5, -0.5, 0.0, 0.0), vec4( 0.5, -0.5, 0.0, 0.0), vec4( 0.0, 0.0, 0.0, 0.0));
This hasn't been a problem on any other OpenGL implementation we are working with (NVIDIA, AMD, Apple, and Mesa), so have put it down to missing functionality in the Intel GLSL compiler. Is this a known issue? Our workaround was simply to change from using a const float4[5] to a uniform and passing it through from C++.
Thanks,
Neil
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Neil,
Thanks for bringing this up. I am unaware of any issues in our driver that could cause this. I have contacted our OpenGL driver development team and they will investigate.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Neil,
A new driver has been released that has a fix for your issue.
https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=24245&lang=eng&ProdId=3720
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page