Properly declare versions for precision qualifiers, in/out/attribute/varying.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20083 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
		
							parent
							
								
									f59bfa07e0
								
							
						
					
					
						commit
						564842b23b
					
				
							
								
								
									
										14
									
								
								Test/120.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Test/120.frag
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | #version 120 | ||||||
|  | 
 | ||||||
|  | lowp vec3 a; | ||||||
|  | mediump float b; | ||||||
|  | highp int c; | ||||||
|  | 
 | ||||||
|  | precision highp float; | ||||||
|  | 
 | ||||||
|  | in vec4 i; | ||||||
|  | out vec4 o; | ||||||
|  | 
 | ||||||
|  | void main() | ||||||
|  | { | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								Test/130.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Test/130.frag
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | #version 130 | ||||||
|  | 
 | ||||||
|  | lowp vec3 a; | ||||||
|  | mediump float b; | ||||||
|  | highp int c; | ||||||
|  | 
 | ||||||
|  | precision highp float; | ||||||
|  | 
 | ||||||
|  | in vec4 i; | ||||||
|  | out vec4 o; | ||||||
|  | 
 | ||||||
|  | void main() | ||||||
|  | { | ||||||
|  | } | ||||||
| @ -1,3 +1,10 @@ | |||||||
|  | #version 140 | ||||||
|  | 
 | ||||||
| varying vec4 v; | varying vec4 v; | ||||||
|  | 
 | ||||||
| in vec4 i; | in vec4 i; | ||||||
| out vec4 o; | out vec4 o; | ||||||
|  | 
 | ||||||
|  | void main() | ||||||
|  | { | ||||||
|  | } | ||||||
| @ -6,4 +6,6 @@ versionsClean.frag | |||||||
| versionsClean.vert | versionsClean.vert | ||||||
| versionsErrors.frag | versionsErrors.frag | ||||||
| versionsErrors.vert | versionsErrors.vert | ||||||
| pre150.frag | 120.frag | ||||||
|  | 130.frag | ||||||
|  | 140.frag | ||||||
|  | |||||||
| @ -137,7 +137,8 @@ void TParseContext::checkDeprecated(int line, EProfile callingProfile, int depVe | |||||||
|                 error(line, "deprecated, may be removed in future release", featureDesc, ""); |                 error(line, "deprecated, may be removed in future release", featureDesc, ""); | ||||||
|                 recover(); |                 recover(); | ||||||
|             } else { |             } else { | ||||||
|                 infoSink.info.message(EPrefixWarning, (TString(featureDesc) + " being used, but may be removed in future release").c_str(), line); |                 infoSink.info.message(EPrefixWarning, (TString(featureDesc) + " deprecated in version " + | ||||||
|  |                                                        String(depVersion) + "; may be removed in future release").c_str(), line); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -1121,6 +1121,7 @@ declaration | |||||||
|         $$ = $1.intermAggregate; |         $$ = $1.intermAggregate; | ||||||
|     } |     } | ||||||
|     | PRECISION precision_qualifier type_specifier SEMICOLON { |     | PRECISION precision_qualifier type_specifier SEMICOLON { | ||||||
|  |         parseContext.profileRequires($1.line, ENoProfile, 130, 0, "precision statement"); | ||||||
|         $$ = 0; |         $$ = 0; | ||||||
|     } |     } | ||||||
|     | type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE SEMICOLON { |     | type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE SEMICOLON { | ||||||
| @ -1641,15 +1642,19 @@ storage_qualifier | |||||||
|         $$.setBasic(EbtVoid, EvqConst, $1.line); |         $$.setBasic(EbtVoid, EvqConst, $1.line); | ||||||
|     } |     } | ||||||
|     | ATTRIBUTE { |     | ATTRIBUTE { | ||||||
|         //parseContext.requireProfile($1.line, (EProfileMask)(ENoProfileMask | ECompatibilityProfileMask), "attribute"); |  | ||||||
|         parseContext.requireStage($1.line, EShLangVertexMask, "attribute"); |         parseContext.requireStage($1.line, EShLangVertexMask, "attribute"); | ||||||
|  | 
 | ||||||
|  |         parseContext.checkDeprecated($1.line, ENoProfile, 140, "attribute"); | ||||||
|         parseContext.requireNotRemoved($1.line, ECoreProfile, 420, "attribute"); |         parseContext.requireNotRemoved($1.line, ECoreProfile, 420, "attribute"); | ||||||
|  | 
 | ||||||
|         if (parseContext.globalErrorCheck($1.line, parseContext.symbolTable.atGlobalLevel(), "attribute")) |         if (parseContext.globalErrorCheck($1.line, parseContext.symbolTable.atGlobalLevel(), "attribute")) | ||||||
|             parseContext.recover(); |             parseContext.recover(); | ||||||
|         $$.setBasic(EbtVoid, EvqAttribute, $1.line); |         $$.setBasic(EbtVoid, EvqAttribute, $1.line); | ||||||
|     } |     } | ||||||
|     | VARYING { |     | VARYING { | ||||||
|  |         parseContext.checkDeprecated($1.line, ENoProfile, 140, "varying"); | ||||||
|         parseContext.requireNotRemoved($1.line, ECoreProfile, 420, "varying"); |         parseContext.requireNotRemoved($1.line, ECoreProfile, 420, "varying"); | ||||||
|  |          | ||||||
|         if (parseContext.globalErrorCheck($1.line, parseContext.symbolTable.atGlobalLevel(), "varying")) |         if (parseContext.globalErrorCheck($1.line, parseContext.symbolTable.atGlobalLevel(), "varying")) | ||||||
|             parseContext.recover(); |             parseContext.recover(); | ||||||
|         if (parseContext.language == EShLangVertex) |         if (parseContext.language == EShLangVertex) | ||||||
| @ -2396,10 +2401,13 @@ type_specifier_nonarray | |||||||
| 
 | 
 | ||||||
| precision_qualifier | precision_qualifier | ||||||
|     : HIGH_PRECISION { |     : HIGH_PRECISION { | ||||||
|  |         parseContext.profileRequires($1.line, ENoProfile, 130, 0, "highp precision qualifier"); | ||||||
|     } |     } | ||||||
|     | MEDIUM_PRECISION { |     | MEDIUM_PRECISION { | ||||||
|  |         parseContext.profileRequires($1.line, ENoProfile, 130, 0, "mediump precision qualifier"); | ||||||
|     } |     } | ||||||
|     | LOW_PRECISION { |     | LOW_PRECISION { | ||||||
|  |         parseContext.profileRequires($1.line, ENoProfile, 130, 0, "lowp precision qualifier"); | ||||||
|     } |     } | ||||||
|     ; |     ; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 John Kessenich
						John Kessenich