mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 18:54:14 +01:00 
			
		
		
		
	glasm: Implement SetAttribute ViewportMask
This commit is contained in:
		
							parent
							
								
									9bd0531384
								
							
						
					
					
						commit
						3a2dd1b483
					
				| @ -286,7 +286,8 @@ void SetupOptions(const IR::Program& program, const Profile& profile, | ||||
|     if (info.uses_sparse_residency) { | ||||
|         header += "OPTION EXT_sparse_texture2;"; | ||||
|     } | ||||
|     if ((info.stores_viewport_index || info.stores_layer) && stage != Stage::Geometry) { | ||||
|     if (((info.stores_viewport_index || info.stores_layer) && stage != Stage::Geometry) || | ||||
|         info.stores_viewport_mask) { | ||||
|         if (profile.support_viewport_index_layer_non_geometry) { | ||||
|             header += "OPTION NV_viewport_array2;"; | ||||
|         } | ||||
|  | ||||
| @ -157,6 +157,14 @@ void EmitSetAttribute(EmitContext& ctx, IR::Attribute attr, ScalarF32 value, | ||||
|                         "Viewport stored outside of geometry shader not supported by device"); | ||||
|         } | ||||
|         break; | ||||
|     case IR::Attribute::ViewportMask: | ||||
|         // NV_viewport_array2 is required to access result.viewportmask, regardless of shader stage.
 | ||||
|         if (ctx.profile.support_viewport_index_layer_non_geometry) { | ||||
|             ctx.Add("MOV.F result.viewportmask[0].x,{};", value); | ||||
|         } else { | ||||
|             LOG_WARNING(Shader_GLASM, "Device does not support storing to ViewportMask"); | ||||
|         } | ||||
|         break; | ||||
|     case IR::Attribute::PointSize: | ||||
|         ctx.Add("MOV.F result.pointsize.x,{};", value); | ||||
|         break; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user