forked from eden-emu/eden
		
	video_core: Implement R8_SNORM render target
This commit is contained in:
		
							parent
							
								
									505c206eb8
								
							
						
					
					
						commit
						fd33e996e0
					
				
					 7 changed files with 13 additions and 0 deletions
				
			
		|  | @ -75,6 +75,7 @@ enum class RenderTargetFormat : u32 { | |||
|     R16_UINT = 0xF1, | ||||
|     R16_FLOAT = 0xF2, | ||||
|     R8_UNORM = 0xF3, | ||||
|     R8_SNORM = 0xF4, | ||||
|     R8_UINT = 0xF6, | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -48,6 +48,7 @@ static constexpr ConversionArray morton_to_linear_fns = { | |||
|     MortonCopy<true, PixelFormat::A2B10G10R10U>, | ||||
|     MortonCopy<true, PixelFormat::A1B5G5R5U>, | ||||
|     MortonCopy<true, PixelFormat::R8U>, | ||||
|     MortonCopy<true, PixelFormat::R8S>, | ||||
|     MortonCopy<true, PixelFormat::R8UI>, | ||||
|     MortonCopy<true, PixelFormat::RGBA16F>, | ||||
|     MortonCopy<true, PixelFormat::RGBA16U>, | ||||
|  | @ -131,6 +132,7 @@ static constexpr ConversionArray linear_to_morton_fns = { | |||
|     MortonCopy<false, PixelFormat::A2B10G10R10U>, | ||||
|     MortonCopy<false, PixelFormat::A1B5G5R5U>, | ||||
|     MortonCopy<false, PixelFormat::R8U>, | ||||
|     MortonCopy<false, PixelFormat::R8S>, | ||||
|     MortonCopy<false, PixelFormat::R8UI>, | ||||
|     MortonCopy<false, PixelFormat::RGBA16F>, | ||||
|     MortonCopy<false, PixelFormat::RGBA16S>, | ||||
|  |  | |||
|  | @ -48,6 +48,7 @@ constexpr std::array<FormatTuple, VideoCore::Surface::MaxPixelFormat> tex_format | |||
|     {GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV},       // A2B10G10R10U
 | ||||
|     {GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5_REV},         // A1B5G5R5U
 | ||||
|     {GL_R8, GL_RED, GL_UNSIGNED_BYTE},                            // R8U
 | ||||
|     {GL_R8_SNORM, GL_RED, GL_BYTE},                               // R8S
 | ||||
|     {GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE},                  // R8UI
 | ||||
|     {GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT},                         // RGBA16F
 | ||||
|     {GL_RGBA16, GL_RGBA, GL_UNSIGNED_SHORT},                      // RGBA16U
 | ||||
|  |  | |||
|  | @ -124,6 +124,7 @@ struct FormatTuple { | |||
|     {VK_FORMAT_A2B10G10R10_UNORM_PACK32, Attachable | Storage}, // A2B10G10R10U
 | ||||
|     {VK_FORMAT_A1R5G5B5_UNORM_PACK16, Attachable},              // A1B5G5R5U (flipped with swizzle)
 | ||||
|     {VK_FORMAT_R8_UNORM, Attachable | Storage},                 // R8U
 | ||||
|     {VK_FORMAT_R8_SNORM, Attachable | Storage},                 // R8S
 | ||||
|     {VK_FORMAT_R8_UINT, Attachable | Storage},                  // R8UI
 | ||||
|     {VK_FORMAT_R16G16B16A16_SFLOAT, Attachable | Storage},      // RGBA16F
 | ||||
|     {VK_FORMAT_R16G16B16A16_UNORM, Attachable | Storage},       // RGBA16U
 | ||||
|  |  | |||
|  | @ -98,6 +98,7 @@ std::unordered_map<VkFormat, VkFormatProperties> GetFormatProperties( | |||
|         VK_FORMAT_R8G8_SNORM, | ||||
|         VK_FORMAT_R8G8_UINT, | ||||
|         VK_FORMAT_R8_UNORM, | ||||
|         VK_FORMAT_R8_SNORM, | ||||
|         VK_FORMAT_R8_UINT, | ||||
|         VK_FORMAT_B10G11R11_UFLOAT_PACK32, | ||||
|         VK_FORMAT_R32_SFLOAT, | ||||
|  |  | |||
|  | @ -164,6 +164,8 @@ PixelFormat PixelFormatFromRenderTargetFormat(Tegra::RenderTargetFormat format) | |||
|         return PixelFormat::R16F; | ||||
|     case Tegra::RenderTargetFormat::R8_UNORM: | ||||
|         return PixelFormat::R8U; | ||||
|     case Tegra::RenderTargetFormat::R8_SNORM: | ||||
|         return PixelFormat::R8S; | ||||
|     case Tegra::RenderTargetFormat::R8_UINT: | ||||
|         return PixelFormat::R8UI; | ||||
|     default: | ||||
|  |  | |||
|  | @ -22,6 +22,7 @@ enum class PixelFormat { | |||
|     A2B10G10R10U, | ||||
|     A1B5G5R5U, | ||||
|     R8U, | ||||
|     R8S, | ||||
|     R8UI, | ||||
|     RGBA16F, | ||||
|     RGBA16U, | ||||
|  | @ -137,6 +138,7 @@ constexpr std::array<u32, MaxPixelFormat> compression_factor_shift_table = {{ | |||
|     0, // A2B10G10R10U
 | ||||
|     0, // A1B5G5R5U
 | ||||
|     0, // R8U
 | ||||
|     0, // R8S
 | ||||
|     0, // R8UI
 | ||||
|     0, // RGBA16F
 | ||||
|     0, // RGBA16U
 | ||||
|  | @ -236,6 +238,7 @@ constexpr std::array<u32, MaxPixelFormat> block_width_table = {{ | |||
|     1,  // A2B10G10R10U
 | ||||
|     1,  // A1B5G5R5U
 | ||||
|     1,  // R8U
 | ||||
|     1,  // R8S
 | ||||
|     1,  // R8UI
 | ||||
|     1,  // RGBA16F
 | ||||
|     1,  // RGBA16U
 | ||||
|  | @ -327,6 +330,7 @@ constexpr std::array<u32, MaxPixelFormat> block_height_table = {{ | |||
|     1,  // A2B10G10R10U
 | ||||
|     1,  // A1B5G5R5U
 | ||||
|     1,  // R8U
 | ||||
|     1,  // R8S
 | ||||
|     1,  // R8UI
 | ||||
|     1,  // RGBA16F
 | ||||
|     1,  // RGBA16U
 | ||||
|  | @ -418,6 +422,7 @@ constexpr std::array<u32, MaxPixelFormat> bpp_table = {{ | |||
|     32,  // A2B10G10R10U
 | ||||
|     16,  // A1B5G5R5U
 | ||||
|     8,   // R8U
 | ||||
|     8,   // R8S
 | ||||
|     8,   // R8UI
 | ||||
|     64,  // RGBA16F
 | ||||
|     64,  // RGBA16U
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 ReinUsesLisp
						ReinUsesLisp