specialize data_format when attribute uses step rates

This commit is contained in:
Frodo Baggins 2025-03-02 18:32:49 -08:00
parent 47db86c3cd
commit eb876e604a

View File

@ -13,6 +13,7 @@
namespace Shader { namespace Shader {
struct VsAttribSpecialization { struct VsAttribSpecialization {
AmdGpu::DataFormat data_format{};
AmdGpu::NumberClass num_class{}; AmdGpu::NumberClass num_class{};
AmdGpu::CompMapping dst_select{}; AmdGpu::CompMapping dst_select{};
@ -94,6 +95,8 @@ struct StageSpecialization {
// Specialize shader on VS input number types to follow spec. // Specialize shader on VS input number types to follow spec.
ForEachSharp(vs_attribs, fetch_shader_data->attributes, ForEachSharp(vs_attribs, fetch_shader_data->attributes,
[&profile_](auto& spec, const auto& desc, AmdGpu::Buffer sharp) { [&profile_](auto& spec, const auto& desc, AmdGpu::Buffer sharp) {
spec.data_format =
desc.UsesStepRates() ? sharp.GetDataFmt() : AmdGpu::DataFormat{};
spec.num_class = profile_.support_legacy_vertex_attributes spec.num_class = profile_.support_legacy_vertex_attributes
? AmdGpu::NumberClass{} ? AmdGpu::NumberClass{}
: AmdGpu::GetNumberClass(sharp.GetNumberFmt()); : AmdGpu::GetNumberClass(sharp.GetNumberFmt());