mirror of
https://github.com/Takiiiiiiii/strato.git
synced 2025-07-17 08:46:39 +00:00
Rename QuirkManager
to TraitManager
Quirk terminology was deemed to be inappropriate for describing the features/extensions of a device. It has been replaced with traits which is far more fitting but quirks will be used as a terminology for errata in devices.
This commit is contained in:
@ -24,42 +24,42 @@ namespace Shader::Log {
|
||||
|
||||
namespace skyline::gpu {
|
||||
ShaderManager::ShaderManager(const DeviceState &state, GPU &gpu) : gpu(gpu) {
|
||||
auto &quirks{gpu.quirks};
|
||||
auto &traits{gpu.traits};
|
||||
hostTranslateInfo = Shader::HostTranslateInfo{
|
||||
.support_float16 = quirks.supportsFloat16,
|
||||
.support_int64 = quirks.supportsInt64,
|
||||
.support_float16 = traits.supportsFloat16,
|
||||
.support_int64 = traits.supportsInt64,
|
||||
.needs_demote_reorder = false,
|
||||
};
|
||||
|
||||
constexpr u32 TegraX1WarpSize{32}; //!< The amount of threads in a warp on the Tegra X1
|
||||
profile = Shader::Profile{
|
||||
.supported_spirv = quirks.supportsSpirv14 ? 0x00010400U : 0x00010000U,
|
||||
.supported_spirv = traits.supportsSpirv14 ? 0x00010400U : 0x00010000U,
|
||||
.unified_descriptor_binding = true,
|
||||
.support_descriptor_aliasing = true,
|
||||
.support_int8 = quirks.supportsInt8,
|
||||
.support_int16 = quirks.supportsInt16,
|
||||
.support_int64 = quirks.supportsInt64,
|
||||
.support_int8 = traits.supportsInt8,
|
||||
.support_int16 = traits.supportsInt16,
|
||||
.support_int64 = traits.supportsInt64,
|
||||
.support_vertex_instance_id = false,
|
||||
.support_float_controls = quirks.supportsFloatControls,
|
||||
.support_separate_denorm_behavior = quirks.floatControls.denormBehaviorIndependence == vk::ShaderFloatControlsIndependence::eAll,
|
||||
.support_separate_rounding_mode = quirks.floatControls.roundingModeIndependence == vk::ShaderFloatControlsIndependence::eAll,
|
||||
.support_fp16_denorm_preserve = static_cast<bool>(quirks.floatControls.shaderDenormPreserveFloat16),
|
||||
.support_fp32_denorm_preserve = static_cast<bool>(quirks.floatControls.shaderDenormPreserveFloat32),
|
||||
.support_fp16_denorm_flush = static_cast<bool>(quirks.floatControls.shaderDenormFlushToZeroFloat16),
|
||||
.support_fp32_denorm_flush = static_cast<bool>(quirks.floatControls.shaderDenormFlushToZeroFloat32),
|
||||
.support_fp16_signed_zero_nan_preserve = static_cast<bool>(quirks.floatControls.shaderSignedZeroInfNanPreserveFloat16),
|
||||
.support_fp32_signed_zero_nan_preserve = static_cast<bool>(quirks.floatControls.shaderSignedZeroInfNanPreserveFloat32),
|
||||
.support_fp64_signed_zero_nan_preserve = static_cast<bool>(quirks.floatControls.shaderSignedZeroInfNanPreserveFloat64),
|
||||
.support_float_controls = traits.supportsFloatControls,
|
||||
.support_separate_denorm_behavior = traits.floatControls.denormBehaviorIndependence == vk::ShaderFloatControlsIndependence::eAll,
|
||||
.support_separate_rounding_mode = traits.floatControls.roundingModeIndependence == vk::ShaderFloatControlsIndependence::eAll,
|
||||
.support_fp16_denorm_preserve = static_cast<bool>(traits.floatControls.shaderDenormPreserveFloat16),
|
||||
.support_fp32_denorm_preserve = static_cast<bool>(traits.floatControls.shaderDenormPreserveFloat32),
|
||||
.support_fp16_denorm_flush = static_cast<bool>(traits.floatControls.shaderDenormFlushToZeroFloat16),
|
||||
.support_fp32_denorm_flush = static_cast<bool>(traits.floatControls.shaderDenormFlushToZeroFloat32),
|
||||
.support_fp16_signed_zero_nan_preserve = static_cast<bool>(traits.floatControls.shaderSignedZeroInfNanPreserveFloat16),
|
||||
.support_fp32_signed_zero_nan_preserve = static_cast<bool>(traits.floatControls.shaderSignedZeroInfNanPreserveFloat32),
|
||||
.support_fp64_signed_zero_nan_preserve = static_cast<bool>(traits.floatControls.shaderSignedZeroInfNanPreserveFloat64),
|
||||
.support_explicit_workgroup_layout = false,
|
||||
.support_vote = quirks.supportsSubgroupVote,
|
||||
.support_viewport_index_layer_non_geometry = quirks.supportsShaderViewportIndexLayer,
|
||||
.support_vote = traits.supportsSubgroupVote,
|
||||
.support_viewport_index_layer_non_geometry = traits.supportsShaderViewportIndexLayer,
|
||||
.support_viewport_mask = false,
|
||||
.support_typeless_image_loads = quirks.supportsImageReadWithoutFormat,
|
||||
.support_demote_to_helper_invocation = quirks.supportsShaderDemoteToHelper,
|
||||
.support_int64_atomics = quirks.supportsAtomicInt64,
|
||||
.support_typeless_image_loads = traits.supportsImageReadWithoutFormat,
|
||||
.support_demote_to_helper_invocation = traits.supportsShaderDemoteToHelper,
|
||||
.support_int64_atomics = traits.supportsAtomicInt64,
|
||||
.support_derivative_control = true,
|
||||
.support_geometry_shader_passthrough = false,
|
||||
.warp_size_potentially_larger_than_guest = TegraX1WarpSize < quirks.subgroupSize,
|
||||
.warp_size_potentially_larger_than_guest = TegraX1WarpSize < traits.subgroupSize,
|
||||
.lower_left_origin_mode = false,
|
||||
.need_declared_frag_colors = false,
|
||||
};
|
||||
|
Reference in New Issue
Block a user