mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 19:40:06 +00:00
Implement GL_OES_primitive_bounding_box.
This commit is contained in:
parent
cee88e3644
commit
30314590ff
@ -127,3 +127,17 @@ void pointSize2()
|
||||
// d = fma(d, d, d);
|
||||
//}
|
||||
//
|
||||
|
||||
void bbBad()
|
||||
{
|
||||
gl_BoundingBoxOES; // ERROR without GL_OES_primitive_bounding_box
|
||||
}
|
||||
|
||||
#extension GL_OES_primitive_bounding_box : enable
|
||||
|
||||
void bb()
|
||||
{
|
||||
gl_BoundingBoxOES[0] = vec4(0.0);
|
||||
gl_BoundingBoxOES[1] = vec4(1.0);
|
||||
gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow
|
||||
}
|
||||
|
@ -119,3 +119,10 @@ void pointSize2()
|
||||
float ps = gl_in[1].gl_PointSize; // ERROR, not in the redeclaration, but no error on use of gl_PointSize
|
||||
gl_PointSize = ps;
|
||||
}
|
||||
|
||||
#extension GL_EXT_primitive_bounding_box : enable
|
||||
|
||||
void bbbad()
|
||||
{
|
||||
gl_BoundingBoxOES; // ERROR, wrong stage
|
||||
}
|
||||
|
@ -37,11 +37,16 @@ GL_OES_gpu_shader5
|
||||
ERROR: 0:104: 'sample' : Reserved word.
|
||||
ERROR: 0:106: 'vertices' : can only apply to a standalone qualifier
|
||||
ERROR: 0:107: 'vertices' : inconsistent output number of vertices for array size of misSized
|
||||
ERROR: 31 compilation errors. No code generated.
|
||||
ERROR: 0:133: 'gl_BoundingBoxOES' : required extension not requested: Possible extensions include:
|
||||
GL_EXT_primitive_bounding_box
|
||||
GL_OES_primitive_bounding_box
|
||||
ERROR: 0:142: '[' : array index out of range '2'
|
||||
ERROR: 33 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 310
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
Requested GL_OES_primitive_bounding_box
|
||||
Requested GL_OES_shader_io_blocks
|
||||
Requested GL_OES_tessellation_point_size
|
||||
Requested GL_OES_tessellation_shader
|
||||
@ -216,6 +221,43 @@ ERROR: node is still EOpNull!
|
||||
0:115 Constant:
|
||||
0:115 1 (const int)
|
||||
0:115 'ps' (temp highp float)
|
||||
0:131 Function Definition: bbBad( (global void)
|
||||
0:131 Function Parameters:
|
||||
0:133 Sequence
|
||||
0:133 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:138 Function Definition: bb( (global void)
|
||||
0:138 Function Parameters:
|
||||
0:140 Sequence
|
||||
0:140 move second child to first child (temp highp 4-component vector of float)
|
||||
0:140 direct index (patch temp highp 4-component vector of float BoundingBox)
|
||||
0:140 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:140 Constant:
|
||||
0:140 0 (const int)
|
||||
0:140 Constant:
|
||||
0:140 0.000000
|
||||
0:140 0.000000
|
||||
0:140 0.000000
|
||||
0:140 0.000000
|
||||
0:141 move second child to first child (temp highp 4-component vector of float)
|
||||
0:141 direct index (patch temp highp 4-component vector of float BoundingBox)
|
||||
0:141 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:141 Constant:
|
||||
0:141 1 (const int)
|
||||
0:141 Constant:
|
||||
0:141 1.000000
|
||||
0:141 1.000000
|
||||
0:141 1.000000
|
||||
0:141 1.000000
|
||||
0:142 move second child to first child (temp highp 4-component vector of float)
|
||||
0:142 direct index (patch temp highp 4-component vector of float BoundingBox)
|
||||
0:142 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:142 Constant:
|
||||
0:142 2 (const int)
|
||||
0:142 Constant:
|
||||
0:142 2.000000
|
||||
0:142 2.000000
|
||||
0:142 2.000000
|
||||
0:142 2.000000
|
||||
0:? Linker Objects
|
||||
0:? 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:? 'outa' (global 4-element array of highp int)
|
||||
@ -246,6 +288,7 @@ Linked tessellation control stage:
|
||||
|
||||
Shader version: 310
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
Requested GL_OES_primitive_bounding_box
|
||||
Requested GL_OES_shader_io_blocks
|
||||
Requested GL_OES_tessellation_point_size
|
||||
Requested GL_OES_tessellation_shader
|
||||
@ -420,6 +463,43 @@ ERROR: node is still EOpNull!
|
||||
0:115 Constant:
|
||||
0:115 1 (const int)
|
||||
0:115 'ps' (temp highp float)
|
||||
0:131 Function Definition: bbBad( (global void)
|
||||
0:131 Function Parameters:
|
||||
0:133 Sequence
|
||||
0:133 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:138 Function Definition: bb( (global void)
|
||||
0:138 Function Parameters:
|
||||
0:140 Sequence
|
||||
0:140 move second child to first child (temp highp 4-component vector of float)
|
||||
0:140 direct index (patch temp highp 4-component vector of float BoundingBox)
|
||||
0:140 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:140 Constant:
|
||||
0:140 0 (const int)
|
||||
0:140 Constant:
|
||||
0:140 0.000000
|
||||
0:140 0.000000
|
||||
0:140 0.000000
|
||||
0:140 0.000000
|
||||
0:141 move second child to first child (temp highp 4-component vector of float)
|
||||
0:141 direct index (patch temp highp 4-component vector of float BoundingBox)
|
||||
0:141 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:141 Constant:
|
||||
0:141 1 (const int)
|
||||
0:141 Constant:
|
||||
0:141 1.000000
|
||||
0:141 1.000000
|
||||
0:141 1.000000
|
||||
0:141 1.000000
|
||||
0:142 move second child to first child (temp highp 4-component vector of float)
|
||||
0:142 direct index (patch temp highp 4-component vector of float BoundingBox)
|
||||
0:142 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox)
|
||||
0:142 Constant:
|
||||
0:142 2 (const int)
|
||||
0:142 Constant:
|
||||
0:142 2.000000
|
||||
0:142 2.000000
|
||||
0:142 2.000000
|
||||
0:142 2.000000
|
||||
0:? Linker Objects
|
||||
0:? 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
|
||||
0:? 'outa' (global 4-element array of highp int)
|
||||
|
@ -47,11 +47,13 @@ ERROR: 0:105: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved
|
||||
ERROR: 0:113: 'sample' : Reserved word.
|
||||
ERROR: 0:119: 'gl_PointSize' : no such field in structure
|
||||
ERROR: 0:119: '=' : cannot convert from 'temp block{in highp 4-component vector of float gl_Position}' to 'temp highp float'
|
||||
ERROR: 43 compilation errors. No code generated.
|
||||
ERROR: 0:127: 'gl_BoundingBoxOES' : undeclared identifier
|
||||
ERROR: 44 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 310
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
Requested GL_EXT_primitive_bounding_box
|
||||
Requested GL_EXT_shader_io_blocks
|
||||
Requested GL_EXT_tessellation_shader
|
||||
Requested GL_OES_shader_io_blocks
|
||||
@ -148,6 +150,10 @@ ERROR: node is still EOpNull!
|
||||
0:120 Constant:
|
||||
0:120 1 (const uint)
|
||||
0:120 'ps' (temp highp float)
|
||||
0:125 Function Definition: bbbad( (global void)
|
||||
0:125 Function Parameters:
|
||||
0:127 Sequence
|
||||
0:127 'gl_BoundingBoxOES' (temp float)
|
||||
0:? Linker Objects
|
||||
0:? 'patchIn' (patch in highp 4-component vector of float)
|
||||
0:? 'patchOut' (patch out highp 4-component vector of float)
|
||||
@ -180,6 +186,7 @@ Linked tessellation evaluation stage:
|
||||
|
||||
Shader version: 310
|
||||
Requested GL_ARB_separate_shader_objects
|
||||
Requested GL_EXT_primitive_bounding_box
|
||||
Requested GL_EXT_shader_io_blocks
|
||||
Requested GL_EXT_tessellation_shader
|
||||
Requested GL_OES_shader_io_blocks
|
||||
@ -276,6 +283,10 @@ ERROR: node is still EOpNull!
|
||||
0:120 Constant:
|
||||
0:120 1 (const uint)
|
||||
0:120 'ps' (temp highp float)
|
||||
0:125 Function Definition: bbbad( (global void)
|
||||
0:125 Function Parameters:
|
||||
0:127 Sequence
|
||||
0:127 'gl_BoundingBoxOES' (temp float)
|
||||
0:? Linker Objects
|
||||
0:? 'patchIn' (patch in highp 4-component vector of float)
|
||||
0:? 'patchOut' (patch out highp 4-component vector of float)
|
||||
|
@ -154,6 +154,7 @@ enum TBuiltInVariable {
|
||||
EbvPatchVertices,
|
||||
EbvTessLevelOuter,
|
||||
EbvTessLevelInner,
|
||||
EbvBoundingBox,
|
||||
EbvTessCoord,
|
||||
EbvColor,
|
||||
EbvSecondaryColor,
|
||||
@ -241,6 +242,7 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
|
||||
case EbvPatchVertices: return "PatchVertices";
|
||||
case EbvTessLevelOuter: return "TessLevelOuter";
|
||||
case EbvTessLevelInner: return "TessLevelInner";
|
||||
case EbvBoundingBox: return "BoundingBox";
|
||||
case EbvTessCoord: return "TessCoord";
|
||||
case EbvColor: return "Color";
|
||||
case EbvSecondaryColor: return "SecondaryColor";
|
||||
|
@ -2,5 +2,5 @@
|
||||
// For the version, it uses the latest git tag followed by the number of commits.
|
||||
// For the date, it uses the current date (when then script is run).
|
||||
|
||||
#define GLSLANG_REVISION "2.3.713"
|
||||
#define GLSLANG_REVISION "2.3.715"
|
||||
#define GLSLANG_DATE "16-Aug-2015"
|
||||
|
@ -1636,6 +1636,7 @@ void TBuiltIns::initialize(int version, EProfile profile)
|
||||
|
||||
"patch out highp float gl_TessLevelOuter[4];"
|
||||
"patch out highp float gl_TessLevelInner[2];"
|
||||
"patch out highp vec4 gl_BoundingBoxOES[2];"
|
||||
"\n");
|
||||
}
|
||||
|
||||
@ -2839,6 +2840,13 @@ void IdentifyBuiltIns(int version, EProfile profile, EShLanguage language, TSymb
|
||||
// Fall through
|
||||
|
||||
case EShLangTessControl:
|
||||
if (profile == EEsProfile && version >= 310) {
|
||||
symbolTable.setVariableExtensions("gl_BoundingBoxOES", Num_AEP_primitive_bounding_box, AEP_primitive_bounding_box);
|
||||
BuiltInVariable("gl_BoundingBoxOES", EbvBoundingBox, symbolTable);
|
||||
}
|
||||
|
||||
// Fall through
|
||||
|
||||
case EShLangTessEvaluation:
|
||||
case EShLangGeometry:
|
||||
SpecialQualifier("gl_Position", EvqPosition, EbvPosition, symbolTable);
|
||||
|
@ -188,7 +188,7 @@ void TParseContext::initializeExtensionBehavior()
|
||||
extensionBehavior[E_GL_EXT_geometry_shader] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_geometry_point_size] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_gpu_shader5] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_primitive_bounding_box] = EBhDisablePartial;
|
||||
extensionBehavior[E_GL_EXT_primitive_bounding_box] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_shader_io_blocks] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_tessellation_shader] = EBhDisable;
|
||||
extensionBehavior[E_GL_EXT_tessellation_point_size] = EBhDisable;
|
||||
@ -199,7 +199,7 @@ void TParseContext::initializeExtensionBehavior()
|
||||
extensionBehavior[E_GL_OES_geometry_shader] = EBhDisable;
|
||||
extensionBehavior[E_GL_OES_geometry_point_size] = EBhDisable;
|
||||
extensionBehavior[E_GL_OES_gpu_shader5] = EBhDisable;
|
||||
extensionBehavior[E_GL_OES_primitive_bounding_box] = EBhDisablePartial;
|
||||
extensionBehavior[E_GL_OES_primitive_bounding_box] = EBhDisable;
|
||||
extensionBehavior[E_GL_OES_shader_io_blocks] = EBhDisable;
|
||||
extensionBehavior[E_GL_OES_tessellation_shader] = EBhDisable;
|
||||
extensionBehavior[E_GL_OES_tessellation_point_size] = EBhDisable;
|
||||
|
Loading…
Reference in New Issue
Block a user