Merge pull request #3565 from ReinUsesLisp/image-format

engines/const_buffer_engine_interface: Store image format and types
This commit is contained in:
Fernando Sahmkow 2020-03-27 14:08:54 -04:00 committed by GitHub
commit 7a2f60df26
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -18,10 +18,14 @@ struct SamplerDescriptor {
union { union {
u32 raw = 0; u32 raw = 0;
BitField<0, 2, Tegra::Shader::TextureType> texture_type; BitField<0, 2, Tegra::Shader::TextureType> texture_type;
BitField<2, 3, Tegra::Texture::ComponentType> component_type; BitField<2, 3, Tegra::Texture::ComponentType> r_type;
BitField<5, 1, u32> is_array; BitField<5, 1, u32> is_array;
BitField<6, 1, u32> is_buffer; BitField<6, 1, u32> is_buffer;
BitField<7, 1, u32> is_shadow; BitField<7, 1, u32> is_shadow;
BitField<8, 3, Tegra::Texture::ComponentType> g_type;
BitField<11, 3, Tegra::Texture::ComponentType> b_type;
BitField<14, 3, Tegra::Texture::ComponentType> a_type;
BitField<17, 7, Tegra::Texture::TextureFormat> format;
}; };
bool operator==(const SamplerDescriptor& rhs) const noexcept { bool operator==(const SamplerDescriptor& rhs) const noexcept {
@ -36,9 +40,11 @@ struct SamplerDescriptor {
using Tegra::Shader::TextureType; using Tegra::Shader::TextureType;
SamplerDescriptor result; SamplerDescriptor result;
// This is going to be used to determine the shading language type. result.format.Assign(tic.format.Value());
// Because of that we don't care about all component types on color textures. result.r_type.Assign(tic.r_type.Value());
result.component_type.Assign(tic.r_type.Value()); result.g_type.Assign(tic.g_type.Value());
result.b_type.Assign(tic.b_type.Value());
result.a_type.Assign(tic.a_type.Value());
switch (tic.texture_type.Value()) { switch (tic.texture_type.Value()) {
case Tegra::Texture::TextureType::Texture1D: case Tegra::Texture::TextureType::Texture1D: