Mentioned this bug a couple of revisions ago. Tested again and still the same error. Emulator under Linux unusable since no graphics can be rendered:
OpenGL caps-flags are still queried blindly as can be seen from the "value (-1) too small;" lines. Would be nice if somebody could fix this as it turns the Linux build literally into a paper weight.
EDIT: Forgot to say. All shaders fail to compile due to this error.
EDIT: EDIT: Besides... why the hell are you using Cg? If you are using OpenGL use GLSL instead as this does not require an error-prone shader compiler at run-time.
Code:
29:10:448 Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp:240 E[Video]: Failed to compile ps (0) : warning C6502: Profile option 'NumInstructionSlots' value (-1) too small; clamped to 0
(0) : warning C6502: Profile option 'NumTexInstructionSlots' value (-1) too small; clamped to 0
(0) : warning C6502: Profile option 'NumMathInstructionSlots' value (-1) too small; clamped to 0
(0) : warning C6503: Profile option 'MaxDrawBuffers' value (8) too large; clamped to 4
(0) : warning C6502: Profile option 'NumInstructionSlots' value (-1) too small; clamped to 0
(0) : warning C6502: Profile option 'NumTexInstructionSlots' value (-1) too small; clamped to 0
(0) : warning C6502: Profile option 'NumMathInstructionSlots' value (-1) too small; clamped to 0
(0) : warning C6503: Profile option 'MaxDrawBuffers' value (8) too large; clamped to 4
(0) : error C6002: Instruction limit of 0 exceeded; 10 instructions needed to compile program
:
29:10:448 Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp:241 E[Video]: uniform samplerRECT samp0 : register(s0);
void main(
out float4 ocol0 : COLOR0,
in float2 uv0 : TEXCOORD0)
{
float2 uv1 = float2(uv0.x + 1.0f, uv0.y);
float3 c0 = texRECT(samp0, uv0).rgb;
float3 c1 = texRECT(samp0, uv1).rgb;
float3 y_const = float3(0.257f,0.504f,0.098f);
float3 u_const = float3(-0.148f,-0.291f,0.439f);
float3 v_const = float3(0.439f,-0.368f,-0.071f);
float4 const3 = float4(0.0625f,0.5f,0.0625f,0.5f);
float3 c01 = (c0 + c1) * 0.5f;
ocol0 = float4(dot(c1,y_const),dot(c01,u_const),dot(c0,y_const),dot(c01, v_const)) + const3;
}
OpenGL caps-flags are still queried blindly as can be seen from the "value (-1) too small;" lines. Would be nice if somebody could fix this as it turns the Linux build literally into a paper weight.
EDIT: Forgot to say. All shaders fail to compile due to this error.
EDIT: EDIT: Besides... why the hell are you using Cg? If you are using OpenGL use GLSL instead as this does not require an error-prone shader compiler at run-time.