diff --git a/Test/310.tesc b/Test/310.tesc index 29c39323..7b8d0db8 100644 --- a/Test/310.tesc +++ b/Test/310.tesc @@ -128,6 +128,21 @@ void goodfoop() d = fma(d, d, d); } +void bbextBad() +{ + gl_BoundingBoxEXT; // ERROR without GL_EXT_primitive_bounding_box + gl_BoundingBox; // ERROR, version < 320 +} + +#extension GL_EXT_primitive_bounding_box : enable + +void bbext() +{ + gl_BoundingBoxEXT[0] = vec4(0.0); + gl_BoundingBoxEXT[1] = vec4(1.0); + gl_BoundingBoxEXT[2] = vec4(2.0); // ERROR, overflow +} + void bbBad() { gl_BoundingBoxOES; // ERROR without GL_OES_primitive_bounding_box diff --git a/Test/320.tesc b/Test/320.tesc index 4fa20f63..fbe0463e 100644 --- a/Test/320.tesc +++ b/Test/320.tesc @@ -118,9 +118,20 @@ void goodfoop() void bb() { - gl_BoundingBoxOES[0] = vec4(0.0); - gl_BoundingBoxOES[1] = vec4(1.0); - gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow + gl_BoundingBoxEXT[0] = vec4(0.0); // ERROR without GL_EXT_primitive_bounding_box + gl_BoundingBoxOES[0] = vec4(0.0); // ERROR without GL_OES_primitive_bounding_box + gl_BoundingBox[0] = vec4(1.0); + gl_BoundingBox[1] = vec4(1.0); + gl_BoundingBox[2] = vec4(2.0); // ERROR, overflow +} + +#extension GL_EXT_primitive_bounding_box : enable +#extension GL_OES_primitive_bounding_box : enable + +void bbext() +{ + gl_BoundingBoxEXT[1] = vec4(0.0); + gl_BoundingBoxOES[1] = vec4(0.0); } out patch badpatchBName { // ERROR, array size required diff --git a/Test/baseResults/310.tesc.out b/Test/baseResults/310.tesc.out index 433a7dc1..ef78bf38 100644 --- a/Test/baseResults/310.tesc.out +++ b/Test/baseResults/310.tesc.out @@ -37,19 +37,21 @@ 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: 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: 0:145: '' : array size required -ERROR: 0:161: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 0:162: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 0:165: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 38 compilation errors. No code generated. +ERROR: 0:133: 'gl_BoundingBoxEXT' : required extension not requested: GL_EXT_primitive_bounding_box +ERROR: 0:134: 'gl_BoundingBox' : undeclared identifier +ERROR: 0:143: '[' : array index out of range '2' +ERROR: 0:148: 'gl_BoundingBoxOES' : required extension not requested: GL_OES_primitive_bounding_box +ERROR: 0:157: '[' : array index out of range '2' +ERROR: 0:160: '' : array size required +ERROR: 0:176: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 0:177: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 0:180: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 41 compilation errors. No code generated. Shader version: 310 Requested GL_ARB_separate_shader_objects +Requested GL_EXT_primitive_bounding_box Requested GL_OES_gpu_shader5 Requested GL_OES_primitive_bounding_box Requested GL_OES_shader_io_blocks @@ -241,113 +243,151 @@ ERROR: node is still EOpNull! 0:128 'd' ( noContraction temp highp float) 0:128 'd' ( noContraction temp highp float) 0:128 'd' ( noContraction temp highp float) -0:131 Function Definition: bbBad( ( global void) +0:131 Function Definition: bbextBad( ( 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:133 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:134 'gl_BoundingBox' ( temp float) +0:139 Function Definition: bbext( ( global void) +0:139 Function Parameters: +0:141 Sequence 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 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) 0:141 Constant: -0:141 1 (const int) +0:141 0 (const int) 0:141 Constant: -0:141 1.000000 -0:141 1.000000 -0:141 1.000000 -0:141 1.000000 +0:141 0.000000 +0:141 0.000000 +0:141 0.000000 +0:141 0.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 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) 0:142 Constant: -0:142 2 (const int) +0:142 1 (const int) 0:142 Constant: -0:142 2.000000 -0:142 2.000000 -0:142 2.000000 -0:142 2.000000 -0:153 Function Definition: outputtingOutparam(i1; ( global void) +0:142 1.000000 +0:142 1.000000 +0:142 1.000000 +0:142 1.000000 +0:143 move second child to first child ( temp highp 4-component vector of float) +0:143 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:143 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:143 Constant: +0:143 2 (const int) +0:143 Constant: +0:143 2.000000 +0:143 2.000000 +0:143 2.000000 +0:143 2.000000 +0:146 Function Definition: bbBad( ( global void) +0:146 Function Parameters: +0:148 Sequence +0:148 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:153 Function Definition: bb( ( global void) 0:153 Function Parameters: -0:153 'a' ( out highp int) 0:155 Sequence -0:155 move second child to first child ( temp highp int) -0:155 'a' ( out highp int) +0:155 move second child to first child ( temp highp 4-component vector of float) +0:155 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:155 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:155 Constant: +0:155 0 (const int) 0:155 Constant: -0:155 2 (const int) -0:158 Function Definition: outputting( ( global void) -0:158 Function Parameters: -0:160 Sequence -0:160 move second child to first child ( temp highp int) -0:160 indirect index ( temp highp int) -0:160 'outa' ( out 4-element array of highp int) -0:160 'gl_InvocationID' ( in highp int InvocationID) -0:160 Constant: -0:160 2 (const int) -0:161 move second child to first child ( temp highp int) -0:161 direct index ( temp highp int) -0:161 'outa' ( out 4-element array of highp int) -0:161 Constant: -0:161 1 (const int) -0:161 Constant: -0:161 2 (const int) -0:162 move second child to first child ( temp highp 4-component vector of float) -0:162 gl_Position: direct index for structure ( out highp 4-component vector of float Position) -0:162 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:162 '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:162 Constant: -0:162 0 (const int) -0:162 Constant: -0:162 0 (const int) -0:162 Constant: -0:162 1.000000 -0:162 1.000000 -0:162 1.000000 -0:162 1.000000 -0:163 direct index ( temp highp int) -0:163 'outa' ( out 4-element array of highp int) -0:163 Constant: -0:163 1 (const int) -0:164 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:164 '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:164 Constant: -0:164 0 (const int) -0:165 Function Call: outputtingOutparam(i1; ( global void) -0:165 direct index ( temp highp int) -0:165 'outa' ( out 4-element array of highp int) -0:165 Constant: -0:165 0 (const int) -0:166 Function Call: outputtingOutparam(i1; ( global void) -0:166 indirect index ( temp highp int) -0:166 'outa' ( out 4-element array of highp int) -0:166 'gl_InvocationID' ( in highp int InvocationID) -0:167 move second child to first child ( temp highp float) -0:167 f: direct index for structure ( out highp float) -0:167 direct index ( patch temp block{ out highp float f}) -0:167 'patchIName' ( patch out 4-element array of block{ out highp float f}) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 3.140000 -0:168 move second child to first child ( temp highp int) -0:168 indirect index ( temp highp int) -0:168 'outa' ( out 4-element array of highp int) -0:168 'gl_InvocationID' ( in highp int InvocationID) -0:168 Constant: -0:168 2 (const int) +0:155 0.000000 +0:155 0.000000 +0:155 0.000000 +0:155 0.000000 +0:156 move second child to first child ( temp highp 4-component vector of float) +0:156 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:156 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:156 Constant: +0:156 1 (const int) +0:156 Constant: +0:156 1.000000 +0:156 1.000000 +0:156 1.000000 +0:156 1.000000 +0:157 move second child to first child ( temp highp 4-component vector of float) +0:157 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:157 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:157 Constant: +0:157 2 (const int) +0:157 Constant: +0:157 2.000000 +0:157 2.000000 +0:157 2.000000 +0:157 2.000000 +0:168 Function Definition: outputtingOutparam(i1; ( global void) +0:168 Function Parameters: +0:168 'a' ( out highp int) +0:170 Sequence +0:170 move second child to first child ( temp highp int) +0:170 'a' ( out highp int) +0:170 Constant: +0:170 2 (const int) +0:173 Function Definition: outputting( ( global void) +0:173 Function Parameters: +0:175 Sequence +0:175 move second child to first child ( temp highp int) +0:175 indirect index ( temp highp int) +0:175 'outa' ( out 4-element array of highp int) +0:175 'gl_InvocationID' ( in highp int InvocationID) +0:175 Constant: +0:175 2 (const int) +0:176 move second child to first child ( temp highp int) +0:176 direct index ( temp highp int) +0:176 'outa' ( out 4-element array of highp int) +0:176 Constant: +0:176 1 (const int) +0:176 Constant: +0:176 2 (const int) +0:177 move second child to first child ( temp highp 4-component vector of float) +0:177 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:177 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:177 '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:177 Constant: +0:177 0 (const int) +0:177 Constant: +0:177 0 (const int) +0:177 Constant: +0:177 1.000000 +0:177 1.000000 +0:177 1.000000 +0:177 1.000000 +0:178 direct index ( temp highp int) +0:178 'outa' ( out 4-element array of highp int) +0:178 Constant: +0:178 1 (const int) +0:179 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:179 '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:179 Constant: +0:179 0 (const int) +0:180 Function Call: outputtingOutparam(i1; ( global void) +0:180 direct index ( temp highp int) +0:180 'outa' ( out 4-element array of highp int) +0:180 Constant: +0:180 0 (const int) +0:181 Function Call: outputtingOutparam(i1; ( global void) +0:181 indirect index ( temp highp int) +0:181 'outa' ( out 4-element array of highp int) +0:181 'gl_InvocationID' ( in highp int InvocationID) +0:182 move second child to first child ( temp highp float) +0:182 f: direct index for structure ( out highp float) +0:182 direct index ( patch temp block{ out highp float f}) +0:182 'patchIName' ( patch out 4-element array of block{ out highp float f}) +0:182 Constant: +0:182 1 (const int) +0:182 Constant: +0:182 0 (const int) +0:182 Constant: +0:182 3.140000 +0:183 move second child to first child ( temp highp int) +0:183 indirect index ( temp highp int) +0:183 'outa' ( out 4-element array of highp int) +0:183 'gl_InvocationID' ( in highp int InvocationID) +0:183 Constant: +0:183 2 (const int) 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' ( out 4-element array of highp int) @@ -381,6 +421,7 @@ Linked tessellation control stage: Shader version: 310 Requested GL_ARB_separate_shader_objects +Requested GL_EXT_primitive_bounding_box Requested GL_OES_gpu_shader5 Requested GL_OES_primitive_bounding_box Requested GL_OES_shader_io_blocks diff --git a/Test/baseResults/320.tesc.out b/Test/baseResults/320.tesc.out index 41ee29c3..4bb6fc28 100644 --- a/Test/baseResults/320.tesc.out +++ b/Test/baseResults/320.tesc.out @@ -37,16 +37,20 @@ GL_OES_tessellation_point_size ERROR: 0:105: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size -ERROR: 0:123: '[' : array index out of range '2' -ERROR: 0:126: '' : array size required -ERROR: 0:142: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 0:143: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 0:146: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID -ERROR: 35 compilation errors. No code generated. +ERROR: 0:121: 'gl_BoundingBoxEXT' : required extension not requested: GL_EXT_primitive_bounding_box +ERROR: 0:122: 'gl_BoundingBoxOES' : required extension not requested: GL_OES_primitive_bounding_box +ERROR: 0:125: '[' : array index out of range '2' +ERROR: 0:137: '' : array size required +ERROR: 0:153: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 0:154: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 0:157: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 37 compilation errors. No code generated. Shader version: 320 Requested GL_ARB_separate_shader_objects +Requested GL_EXT_primitive_bounding_box +Requested GL_OES_primitive_bounding_box vertices = 4 ERROR: node is still EOpNull! 0:13 Function Definition: main( ( global void) @@ -229,7 +233,7 @@ ERROR: node is still EOpNull! 0:121 Sequence 0:121 move second child to first child ( temp highp 4-component vector of float) 0:121 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:121 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:121 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) 0:121 Constant: 0:121 0 (const int) 0:121 Constant: @@ -241,92 +245,135 @@ ERROR: node is still EOpNull! 0:122 direct index ( patch temp highp 4-component vector of float BoundingBox) 0:122 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) 0:122 Constant: -0:122 1 (const int) +0:122 0 (const int) 0:122 Constant: -0:122 1.000000 -0:122 1.000000 -0:122 1.000000 -0:122 1.000000 +0:122 0.000000 +0:122 0.000000 +0:122 0.000000 +0:122 0.000000 0:123 move second child to first child ( temp highp 4-component vector of float) 0:123 direct index ( patch temp highp 4-component vector of float BoundingBox) -0:123 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:123 'gl_BoundingBox' ( patch out 2-element array of highp 4-component vector of float BoundingBox) 0:123 Constant: -0:123 2 (const int) +0:123 0 (const int) 0:123 Constant: -0:123 2.000000 -0:123 2.000000 -0:123 2.000000 -0:123 2.000000 -0:134 Function Definition: outputtingOutparam(i1; ( global void) -0:134 Function Parameters: -0:134 'a' ( out highp int) -0:136 Sequence -0:136 move second child to first child ( temp highp int) -0:136 'a' ( out highp int) -0:136 Constant: -0:136 2 (const int) -0:139 Function Definition: outputting( ( global void) -0:139 Function Parameters: -0:141 Sequence -0:141 move second child to first child ( temp highp int) -0:141 indirect index ( temp highp int) -0:141 'outa' ( out 4-element array of highp int) -0:141 'gl_InvocationID' ( in highp int InvocationID) -0:141 Constant: -0:141 2 (const int) -0:142 move second child to first child ( temp highp int) -0:142 direct index ( temp highp int) -0:142 'outa' ( out 4-element array of highp int) -0:142 Constant: -0:142 1 (const int) -0:142 Constant: -0:142 2 (const int) -0:143 move second child to first child ( temp highp 4-component vector of float) -0:143 gl_Position: direct index for structure ( out highp 4-component vector of float Position) -0:143 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:143 '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:143 Constant: -0:143 0 (const int) -0:143 Constant: -0:143 0 (const int) -0:143 Constant: -0:143 1.000000 -0:143 1.000000 -0:143 1.000000 -0:143 1.000000 -0:144 direct index ( temp highp int) -0:144 'outa' ( out 4-element array of highp int) -0:144 Constant: -0:144 1 (const int) -0:145 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:145 '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:145 Constant: -0:145 0 (const int) -0:146 Function Call: outputtingOutparam(i1; ( global void) -0:146 direct index ( temp highp int) -0:146 'outa' ( out 4-element array of highp int) -0:146 Constant: -0:146 0 (const int) -0:147 Function Call: outputtingOutparam(i1; ( global void) -0:147 indirect index ( temp highp int) -0:147 'outa' ( out 4-element array of highp int) -0:147 'gl_InvocationID' ( in highp int InvocationID) -0:148 move second child to first child ( temp highp float) -0:148 f: direct index for structure ( out highp float) -0:148 direct index ( patch temp block{ out highp float f}) -0:148 'patchIName' ( patch out 4-element array of block{ out highp float f}) -0:148 Constant: -0:148 1 (const int) -0:148 Constant: -0:148 0 (const int) -0:148 Constant: -0:148 3.140000 -0:149 move second child to first child ( temp highp int) -0:149 indirect index ( temp highp int) -0:149 'outa' ( out 4-element array of highp int) -0:149 'gl_InvocationID' ( in highp int InvocationID) -0:149 Constant: -0:149 2 (const int) +0:123 1.000000 +0:123 1.000000 +0:123 1.000000 +0:123 1.000000 +0:124 move second child to first child ( temp highp 4-component vector of float) +0:124 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:124 'gl_BoundingBox' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:124 Constant: +0:124 1 (const int) +0:124 Constant: +0:124 1.000000 +0:124 1.000000 +0:124 1.000000 +0:124 1.000000 +0:125 move second child to first child ( temp highp 4-component vector of float) +0:125 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:125 'gl_BoundingBox' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:125 Constant: +0:125 2 (const int) +0:125 Constant: +0:125 2.000000 +0:125 2.000000 +0:125 2.000000 +0:125 2.000000 +0:131 Function Definition: bbext( ( global void) +0:131 Function Parameters: +0:133 Sequence +0:133 move second child to first child ( temp highp 4-component vector of float) +0:133 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:133 'gl_BoundingBoxEXT' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:133 Constant: +0:133 1 (const int) +0:133 Constant: +0:133 0.000000 +0:133 0.000000 +0:133 0.000000 +0:133 0.000000 +0:134 move second child to first child ( temp highp 4-component vector of float) +0:134 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:134 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:134 Constant: +0:134 1 (const int) +0:134 Constant: +0:134 0.000000 +0:134 0.000000 +0:134 0.000000 +0:134 0.000000 +0:145 Function Definition: outputtingOutparam(i1; ( global void) +0:145 Function Parameters: +0:145 'a' ( out highp int) +0:147 Sequence +0:147 move second child to first child ( temp highp int) +0:147 'a' ( out highp int) +0:147 Constant: +0:147 2 (const int) +0:150 Function Definition: outputting( ( global void) +0:150 Function Parameters: +0:152 Sequence +0:152 move second child to first child ( temp highp int) +0:152 indirect index ( temp highp int) +0:152 'outa' ( out 4-element array of highp int) +0:152 'gl_InvocationID' ( in highp int InvocationID) +0:152 Constant: +0:152 2 (const int) +0:153 move second child to first child ( temp highp int) +0:153 direct index ( temp highp int) +0:153 'outa' ( out 4-element array of highp int) +0:153 Constant: +0:153 1 (const int) +0:153 Constant: +0:153 2 (const int) +0:154 move second child to first child ( temp highp 4-component vector of float) +0:154 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:154 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:154 '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:154 Constant: +0:154 0 (const int) +0:154 Constant: +0:154 0 (const int) +0:154 Constant: +0:154 1.000000 +0:154 1.000000 +0:154 1.000000 +0:154 1.000000 +0:155 direct index ( temp highp int) +0:155 'outa' ( out 4-element array of highp int) +0:155 Constant: +0:155 1 (const int) +0:156 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:156 '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:156 Constant: +0:156 0 (const int) +0:157 Function Call: outputtingOutparam(i1; ( global void) +0:157 direct index ( temp highp int) +0:157 'outa' ( out 4-element array of highp int) +0:157 Constant: +0:157 0 (const int) +0:158 Function Call: outputtingOutparam(i1; ( global void) +0:158 indirect index ( temp highp int) +0:158 'outa' ( out 4-element array of highp int) +0:158 'gl_InvocationID' ( in highp int InvocationID) +0:159 move second child to first child ( temp highp float) +0:159 f: direct index for structure ( out highp float) +0:159 direct index ( patch temp block{ out highp float f}) +0:159 'patchIName' ( patch out 4-element array of block{ out highp float f}) +0:159 Constant: +0:159 1 (const int) +0:159 Constant: +0:159 0 (const int) +0:159 Constant: +0:159 3.140000 +0:160 move second child to first child ( temp highp int) +0:160 indirect index ( temp highp int) +0:160 'outa' ( out 4-element array of highp int) +0:160 'gl_InvocationID' ( in highp int InvocationID) +0:160 Constant: +0:160 2 (const int) 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' ( out 4-element array of highp int) @@ -360,6 +407,8 @@ Linked tessellation control stage: Shader version: 320 Requested GL_ARB_separate_shader_objects +Requested GL_EXT_primitive_bounding_box +Requested GL_OES_primitive_bounding_box vertices = 4 ERROR: node is still EOpNull! 0:13 Function Definition: main( ( global void) diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index f4df3e71..24a5dcd9 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -5794,7 +5794,14 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "patch out highp float gl_TessLevelOuter[4];" "patch out highp float gl_TessLevelInner[2];" "patch out highp vec4 gl_BoundingBoxOES[2];" + "patch out highp vec4 gl_BoundingBoxEXT[2];" "\n"); + if (profile == EEsProfile && version >= 320) { + stageBuiltins[EShLangTessControl].append( + "patch out highp vec4 gl_BoundingBox[2];" + "\n" + ); + } } if ((profile != EEsProfile && version >= 140) || @@ -8014,10 +8021,16 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion case EShLangTessControl: if (profile == EEsProfile && version >= 310) { + BuiltInVariable("gl_BoundingBoxEXT", EbvBoundingBox, symbolTable); + symbolTable.setVariableExtensions("gl_BoundingBoxEXT", 1, + &E_GL_EXT_primitive_bounding_box); BuiltInVariable("gl_BoundingBoxOES", EbvBoundingBox, symbolTable); - if (version < 320) - symbolTable.setVariableExtensions("gl_BoundingBoxOES", Num_AEP_primitive_bounding_box, - AEP_primitive_bounding_box); + symbolTable.setVariableExtensions("gl_BoundingBoxOES", 1, + &E_GL_OES_primitive_bounding_box); + + if (version >= 320) { + BuiltInVariable("gl_BoundingBox", EbvBoundingBox, symbolTable); + } } // Fall through