 c6d82209ab
			
		
	
	
		c6d82209ab
		
			
		
	
	
	
	
		
			
			* Vertex Buffer Alignment part 1 * Update CacheByRange * Add Stride Change compute shader, fix storage buffers in helpers * An AMD exclusive * Reword * Change rules - stride conversion when attrs misalign * Fix stupid mistake * Fix background pipeline compile * Improve a few things. * Fix some feedback * Address Feedback (the shader binary didn't change when i changed the source to use the subgroup size) * Fix bug where rewritten buffer would be disposed instantly.
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Silk.NET.Vulkan;
 | |
| 
 | |
| namespace Ryujinx.Graphics.Vulkan
 | |
| {
 | |
|     struct HardwareCapabilities
 | |
|     {
 | |
|         public readonly bool SupportsIndexTypeUint8;
 | |
|         public readonly bool SupportsCustomBorderColor;
 | |
|         public readonly bool SupportsIndirectParameters;
 | |
|         public readonly bool SupportsFragmentShaderInterlock;
 | |
|         public readonly bool SupportsGeometryShaderPassthrough;
 | |
|         public readonly bool SupportsSubgroupSizeControl;
 | |
|         public readonly bool SupportsShaderInt8;
 | |
|         public readonly bool SupportsConditionalRendering;
 | |
|         public readonly bool SupportsExtendedDynamicState;
 | |
|         public readonly bool SupportsMultiView;
 | |
|         public readonly bool SupportsNullDescriptors;
 | |
|         public readonly bool SupportsPushDescriptors;
 | |
|         public readonly bool SupportsTransformFeedback;
 | |
|         public readonly bool SupportsTransformFeedbackQueries;
 | |
|         public readonly bool SupportsGeometryShader;
 | |
|         public readonly uint MinSubgroupSize;
 | |
|         public readonly uint MaxSubgroupSize;
 | |
|         public readonly ShaderStageFlags RequiredSubgroupSizeStages;
 | |
| 
 | |
|         public HardwareCapabilities(
 | |
|             bool supportsIndexTypeUint8,
 | |
|             bool supportsCustomBorderColor,
 | |
|             bool supportsIndirectParameters,
 | |
|             bool supportsFragmentShaderInterlock,
 | |
|             bool supportsGeometryShaderPassthrough,
 | |
|             bool supportsSubgroupSizeControl,
 | |
|             bool supportsShaderInt8,
 | |
|             bool supportsConditionalRendering,
 | |
|             bool supportsExtendedDynamicState,
 | |
|             bool supportsMultiView,
 | |
|             bool supportsNullDescriptors,
 | |
|             bool supportsPushDescriptors,
 | |
|             bool supportsTransformFeedback,
 | |
|             bool supportsTransformFeedbackQueries,
 | |
|             bool supportsGeometryShader,
 | |
|             uint minSubgroupSize,
 | |
|             uint maxSubgroupSize,
 | |
|             ShaderStageFlags requiredSubgroupSizeStages)
 | |
|         {
 | |
|             SupportsIndexTypeUint8 = supportsIndexTypeUint8;
 | |
|             SupportsCustomBorderColor = supportsCustomBorderColor;
 | |
|             SupportsIndirectParameters = supportsIndirectParameters;
 | |
|             SupportsFragmentShaderInterlock = supportsFragmentShaderInterlock;
 | |
|             SupportsGeometryShaderPassthrough = supportsGeometryShaderPassthrough;
 | |
|             SupportsSubgroupSizeControl = supportsSubgroupSizeControl;
 | |
|             SupportsShaderInt8 = supportsShaderInt8;
 | |
|             SupportsConditionalRendering = supportsConditionalRendering;
 | |
|             SupportsExtendedDynamicState = supportsExtendedDynamicState;
 | |
|             SupportsMultiView = supportsMultiView;
 | |
|             SupportsNullDescriptors = supportsNullDescriptors;
 | |
|             SupportsPushDescriptors = supportsPushDescriptors;
 | |
|             SupportsTransformFeedback = supportsTransformFeedback;
 | |
|             SupportsTransformFeedbackQueries = supportsTransformFeedbackQueries;
 | |
|             SupportsGeometryShader = supportsGeometryShader;
 | |
|             MinSubgroupSize = minSubgroupSize;
 | |
|             MaxSubgroupSize = maxSubgroupSize;
 | |
|             RequiredSubgroupSizeStages = requiredSubgroupSizeStages;
 | |
|         }
 | |
|     }
 | |
| }
 |