[ir, spv] Added support for sampler component types in texture handling

This commit is contained in:
CamilleLaVey 2025-11-27 16:18:15 -04:00 committed by lizzie
parent 0d35cf9048
commit e012f7cff8
8 changed files with 200 additions and 20 deletions

View file

@ -80,6 +80,7 @@ protected:
std::vector<u64> code;
ankerl::unordered_dense::map<u32, Shader::TextureType> texture_types;
ankerl::unordered_dense::map<u32, Shader::SamplerComponentType> texture_component_types;
ankerl::unordered_dense::map<u32, Shader::TexturePixelFormat> texture_pixel_formats;
ankerl::unordered_dense::map<u64, u32> cbuf_values;
ankerl::unordered_dense::map<u64, Shader::ReplaceConstant> cbuf_replacements;
@ -116,6 +117,8 @@ public:
Shader::TextureType ReadTextureType(u32 handle) override;
Shader::SamplerComponentType ReadTextureComponentType(u32 handle) override;
Shader::TexturePixelFormat ReadTexturePixelFormat(u32 handle) override;
bool IsTexturePixelFormatInteger(u32 handle) override;
@ -142,6 +145,8 @@ public:
Shader::TextureType ReadTextureType(u32 handle) override;
Shader::SamplerComponentType ReadTextureComponentType(u32 handle) override;
Shader::TexturePixelFormat ReadTexturePixelFormat(u32 handle) override;
bool IsTexturePixelFormatInteger(u32 handle) override;
@ -176,6 +181,8 @@ public:
[[nodiscard]] Shader::TextureType ReadTextureType(u32 handle) override;
[[nodiscard]] Shader::SamplerComponentType ReadTextureComponentType(u32 handle) override;
[[nodiscard]] Shader::TexturePixelFormat ReadTexturePixelFormat(u32 handle) override;
[[nodiscard]] bool IsTexturePixelFormatInteger(u32 handle) override;
@ -202,6 +209,7 @@ public:
private:
std::vector<u64> code;
ankerl::unordered_dense::map<u32, Shader::TextureType> texture_types;
ankerl::unordered_dense::map<u32, Shader::SamplerComponentType> texture_component_types;
ankerl::unordered_dense::map<u32, Shader::TexturePixelFormat> texture_pixel_formats;
ankerl::unordered_dense::map<u64, u32> cbuf_values;
ankerl::unordered_dense::map<u64, Shader::ReplaceConstant> cbuf_replacements;