@@ -414,7 +414,7 @@ struct TextureInitData : public ObjectBase<IObject>
414414
415415 if (FmtAttribs.ComponentType != COMPONENT_TYPE_COMPRESSED)
416416 {
417- ComputeMipLevel ({Format, FineLevel.Width , FineLevel.Height ,
417+ ComputeMipLevel ({TypelessFormatToUnorm ( Format) , FineLevel.Width , FineLevel.Height ,
418418 FineLevel.Data .data (), StaticCast<size_t >(FineLevel.SubResData .Stride ),
419419 Level.Data .data (), StaticCast<size_t >(Level.SubResData .Stride )});
420420 }
@@ -440,7 +440,7 @@ TEXTURE_FORMAT GetModelImageDataTextureFormat(const Model::ImageData& Image)
440440 case 1 : return TEX_FORMAT_R8_UNORM;
441441 case 2 : return TEX_FORMAT_RG8_UNORM;
442442 case 3 :
443- case 4 : return TEX_FORMAT_RGBA8_UNORM;
443+ case 4 : return TEX_FORMAT_RGBA8_TYPELESS; // Use typeless format to allow UNORM/SRGB usage
444444 default :
445445 DEV_ERROR (" Unsupported number of color components in gltf image: " , Image.NumComponents );
446446 return TEX_FORMAT_UNKNOWN;
@@ -890,7 +890,7 @@ Uint32 Model::AddTexture(IRenderDevice* pDevice,
890890 TexDesc.Type = RESOURCE_DIM_TEX_2D_ARRAY;
891891 TexDesc.Width = 32 ;
892892 TexDesc.Height = 32 ;
893- TexDesc.Format = TEX_FORMAT_RGBA8_UNORM;
893+ TexDesc.Format = TEX_FORMAT_RGBA8_TYPELESS; // Use typeless format to allow UNORM/SRGB usage
894894 TexDesc.MipLevels = 1 ;
895895 TexDesc.Usage = USAGE_DEFAULT;
896896 TexDesc.BindFlags = BIND_SHADER_RESOURCE;
0 commit comments