Merge pull request #1084 from bunnei/depth
gl_rasterizer_cache: Treat Depth formats differently from DepthStencil.
This commit is contained in:
		
						commit
						ce56b8e1fa
					
				@ -142,14 +142,16 @@ static constexpr std::array<FormatTuple, SurfaceParams::MaxPixelFormat> tex_form
 | 
			
		||||
    {GL_RG32UI, GL_RG_INTEGER, GL_UNSIGNED_INT, ComponentType::UInt, false},              // RG32UI
 | 
			
		||||
    {GL_R32UI, GL_RED_INTEGER, GL_UNSIGNED_INT, ComponentType::UInt, false},              // R32UI
 | 
			
		||||
 | 
			
		||||
    // Depth formats
 | 
			
		||||
    {GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT, ComponentType::Float, false}, // Z32F
 | 
			
		||||
    {GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, ComponentType::UNorm,
 | 
			
		||||
     false}, // Z16
 | 
			
		||||
 | 
			
		||||
    // DepthStencil formats
 | 
			
		||||
    {GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, ComponentType::UNorm,
 | 
			
		||||
     false}, // Z24S8
 | 
			
		||||
    {GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, ComponentType::UNorm,
 | 
			
		||||
     false},                                                                            // S8Z24
 | 
			
		||||
    {GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT, ComponentType::Float, false}, // Z32F
 | 
			
		||||
    {GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, ComponentType::UNorm,
 | 
			
		||||
     false}, // Z16
 | 
			
		||||
     false}, // S8Z24
 | 
			
		||||
    {GL_DEPTH32F_STENCIL8, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
 | 
			
		||||
     ComponentType::Float, false}, // Z32FS8
 | 
			
		||||
}};
 | 
			
		||||
@ -283,10 +285,10 @@ static constexpr std::array<void (*)(u32, u32, u32, std::vector<u8>&, Tegra::GPU
 | 
			
		||||
        MortonCopy<true, PixelFormat::RG8S>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::RG32UI>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::R32UI>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::Z24S8>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::S8Z24>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::Z32F>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::Z16>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::Z24S8>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::S8Z24>,
 | 
			
		||||
        MortonCopy<true, PixelFormat::Z32FS8>,
 | 
			
		||||
        // clang-format on
 | 
			
		||||
};
 | 
			
		||||
@ -339,10 +341,10 @@ static constexpr std::array<void (*)(u32, u32, u32, std::vector<u8>&, Tegra::GPU
 | 
			
		||||
        MortonCopy<false, PixelFormat::RG8S>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::RG32UI>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::R32UI>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::Z24S8>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::S8Z24>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::Z32F>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::Z16>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::Z24S8>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::S8Z24>,
 | 
			
		||||
        MortonCopy<false, PixelFormat::Z32FS8>,
 | 
			
		||||
        // clang-format on
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -68,11 +68,15 @@ struct SurfaceParams {
 | 
			
		||||
 | 
			
		||||
        MaxColorFormat,
 | 
			
		||||
 | 
			
		||||
        // Depth formats
 | 
			
		||||
        Z32F = 42,
 | 
			
		||||
        Z16 = 43,
 | 
			
		||||
 | 
			
		||||
        MaxDepthFormat,
 | 
			
		||||
 | 
			
		||||
        // DepthStencil formats
 | 
			
		||||
        Z24S8 = 42,
 | 
			
		||||
        S8Z24 = 43,
 | 
			
		||||
        Z32F = 44,
 | 
			
		||||
        Z16 = 45,
 | 
			
		||||
        Z24S8 = 44,
 | 
			
		||||
        S8Z24 = 45,
 | 
			
		||||
        Z32FS8 = 46,
 | 
			
		||||
 | 
			
		||||
        MaxDepthStencilFormat,
 | 
			
		||||
@ -153,10 +157,10 @@ struct SurfaceParams {
 | 
			
		||||
            1, // RG8S
 | 
			
		||||
            1, // RG32UI
 | 
			
		||||
            1, // R32UI
 | 
			
		||||
            1, // Z24S8
 | 
			
		||||
            1, // S8Z24
 | 
			
		||||
            1, // Z32F
 | 
			
		||||
            1, // Z16
 | 
			
		||||
            1, // Z24S8
 | 
			
		||||
            1, // S8Z24
 | 
			
		||||
            1, // Z32FS8
 | 
			
		||||
        }};
 | 
			
		||||
 | 
			
		||||
@ -211,10 +215,10 @@ struct SurfaceParams {
 | 
			
		||||
            16,  // RG8S
 | 
			
		||||
            64,  // RG32UI
 | 
			
		||||
            32,  // R32UI
 | 
			
		||||
            32,  // Z24S8
 | 
			
		||||
            32,  // S8Z24
 | 
			
		||||
            32,  // Z32F
 | 
			
		||||
            16,  // Z16
 | 
			
		||||
            32,  // Z24S8
 | 
			
		||||
            32,  // S8Z24
 | 
			
		||||
            64,  // Z32FS8
 | 
			
		||||
        }};
 | 
			
		||||
 | 
			
		||||
@ -587,6 +591,10 @@ struct SurfaceParams {
 | 
			
		||||
            return SurfaceType::ColorTexture;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (static_cast<size_t>(pixel_format) < static_cast<size_t>(PixelFormat::MaxDepthFormat)) {
 | 
			
		||||
            return SurfaceType::Depth;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (static_cast<size_t>(pixel_format) <
 | 
			
		||||
            static_cast<size_t>(PixelFormat::MaxDepthStencilFormat)) {
 | 
			
		||||
            return SurfaceType::DepthStencil;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user