mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Video: add R10B10G10A2 and R16G16B16A16F texture types (needed by PR 11850)
This commit is contained in:
@ -136,6 +136,10 @@ DXGI_FORMAT GetDXGIFormatForAbstractFormat(AbstractTextureFormat format, bool ty
|
||||
return typeless ? DXGI_FORMAT_R8G8B8A8_TYPELESS : DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
case AbstractTextureFormat::BGRA8:
|
||||
return typeless ? DXGI_FORMAT_B8G8R8A8_TYPELESS : DXGI_FORMAT_B8G8R8A8_UNORM;
|
||||
case AbstractTextureFormat::RGB10_A2:
|
||||
return typeless ? DXGI_FORMAT_R10G10B10A2_TYPELESS : DXGI_FORMAT_R10G10B10A2_UNORM;
|
||||
case AbstractTextureFormat::RGBA16F:
|
||||
return typeless ? DXGI_FORMAT_R16G16B16A16_TYPELESS : DXGI_FORMAT_R16G16B16A16_FLOAT;
|
||||
case AbstractTextureFormat::R16:
|
||||
return typeless ? DXGI_FORMAT_R16_TYPELESS : DXGI_FORMAT_R16_UNORM;
|
||||
case AbstractTextureFormat::R32F:
|
||||
@ -169,6 +173,10 @@ DXGI_FORMAT GetSRVFormatForAbstractFormat(AbstractTextureFormat format)
|
||||
return DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
case AbstractTextureFormat::BGRA8:
|
||||
return DXGI_FORMAT_B8G8R8A8_UNORM;
|
||||
case AbstractTextureFormat::RGB10_A2:
|
||||
return DXGI_FORMAT_R10G10B10A2_UNORM;
|
||||
case AbstractTextureFormat::RGBA16F:
|
||||
return DXGI_FORMAT_R16G16B16A16_FLOAT;
|
||||
case AbstractTextureFormat::R16:
|
||||
return DXGI_FORMAT_R16_UNORM;
|
||||
case AbstractTextureFormat::R32F:
|
||||
@ -195,6 +203,10 @@ DXGI_FORMAT GetRTVFormatForAbstractFormat(AbstractTextureFormat format, bool int
|
||||
return integer ? DXGI_FORMAT_R8G8B8A8_UINT : DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
case AbstractTextureFormat::BGRA8:
|
||||
return DXGI_FORMAT_B8G8R8A8_UNORM;
|
||||
case AbstractTextureFormat::RGB10_A2:
|
||||
return DXGI_FORMAT_R10G10B10A2_UNORM;
|
||||
case AbstractTextureFormat::RGBA16F:
|
||||
return DXGI_FORMAT_R16G16B16A16_FLOAT;
|
||||
case AbstractTextureFormat::R16:
|
||||
return integer ? DXGI_FORMAT_R16_UINT : DXGI_FORMAT_R16_UNORM;
|
||||
case AbstractTextureFormat::R32F:
|
||||
@ -235,6 +247,14 @@ AbstractTextureFormat GetAbstractFormatForDXGIFormat(DXGI_FORMAT format)
|
||||
case DXGI_FORMAT_B8G8R8A8_TYPELESS:
|
||||
return AbstractTextureFormat::BGRA8;
|
||||
|
||||
case DXGI_FORMAT_R10G10B10A2_UNORM:
|
||||
case DXGI_FORMAT_R10G10B10A2_TYPELESS:
|
||||
return AbstractTextureFormat::RGB10_A2;
|
||||
|
||||
case DXGI_FORMAT_R16G16B16A16_FLOAT:
|
||||
case DXGI_FORMAT_R16G16B16A16_TYPELESS:
|
||||
return AbstractTextureFormat::RGBA16F;
|
||||
|
||||
case DXGI_FORMAT_R16_UINT:
|
||||
case DXGI_FORMAT_R16_UNORM:
|
||||
case DXGI_FORMAT_R16_TYPELESS:
|
||||
|
@ -263,6 +263,8 @@ AbstractTextureFormat Metal::Util::ToAbstract(MTLPixelFormat format)
|
||||
{
|
||||
case MTLPixelFormatRGBA8Unorm: return AbstractTextureFormat::RGBA8;
|
||||
case MTLPixelFormatBGRA8Unorm: return AbstractTextureFormat::BGRA8;
|
||||
case MTLPixelFormatRGB10A2Unorm: return AbstractTextureFormat::RGB10_A2;
|
||||
case MTLPixelFormatRGBA16Float: return AbstractTextureFormat::RGBA16F;
|
||||
case MTLPixelFormatBC1_RGBA: return AbstractTextureFormat::DXT1;
|
||||
case MTLPixelFormatBC2_RGBA: return AbstractTextureFormat::DXT3;
|
||||
case MTLPixelFormatBC3_RGBA: return AbstractTextureFormat::DXT5;
|
||||
@ -289,6 +291,8 @@ MTLPixelFormat Metal::Util::FromAbstract(AbstractTextureFormat format)
|
||||
{
|
||||
case AbstractTextureFormat::RGBA8: return MTLPixelFormatRGBA8Unorm;
|
||||
case AbstractTextureFormat::BGRA8: return MTLPixelFormatBGRA8Unorm;
|
||||
case AbstractTextureFormat::RGB10_A2: return MTLPixelFormatRGB10A2Unorm;
|
||||
case AbstractTextureFormat::RGBA16F: return MTLPixelFormatRGBA16Float;
|
||||
case AbstractTextureFormat::DXT1: return MTLPixelFormatBC1_RGBA;
|
||||
case AbstractTextureFormat::DXT3: return MTLPixelFormatBC2_RGBA;
|
||||
case AbstractTextureFormat::DXT5: return MTLPixelFormatBC3_RGBA;
|
||||
|
@ -33,6 +33,10 @@ GLenum GetGLInternalFormatForTextureFormat(AbstractTextureFormat format, bool st
|
||||
return storage ? GL_RGBA8 : GL_RGBA;
|
||||
case AbstractTextureFormat::BGRA8:
|
||||
return storage ? GL_RGBA8 : GL_BGRA;
|
||||
case AbstractTextureFormat::RGB10_A2:
|
||||
return GL_RGB10_A2;
|
||||
case AbstractTextureFormat::RGBA16F:
|
||||
return GL_RGBA16F;
|
||||
case AbstractTextureFormat::R16:
|
||||
return GL_R16;
|
||||
case AbstractTextureFormat::R32F:
|
||||
@ -59,6 +63,10 @@ GLenum GetGLFormatForTextureFormat(AbstractTextureFormat format)
|
||||
return GL_RGBA;
|
||||
case AbstractTextureFormat::BGRA8:
|
||||
return GL_BGRA;
|
||||
case AbstractTextureFormat::RGB10_A2:
|
||||
return GL_RGB10_A2;
|
||||
case AbstractTextureFormat::RGBA16F:
|
||||
return GL_RGBA16F;
|
||||
case AbstractTextureFormat::R16:
|
||||
case AbstractTextureFormat::R32F:
|
||||
return GL_RED;
|
||||
@ -81,6 +89,10 @@ GLenum GetGLTypeForTextureFormat(AbstractTextureFormat format)
|
||||
case AbstractTextureFormat::RGBA8:
|
||||
case AbstractTextureFormat::BGRA8:
|
||||
return GL_UNSIGNED_BYTE;
|
||||
case AbstractTextureFormat::RGB10_A2:
|
||||
return GL_UNSIGNED_INT_2_10_10_10_REV;
|
||||
case AbstractTextureFormat::RGBA16F:
|
||||
return GL_HALF_FLOAT;
|
||||
case AbstractTextureFormat::R16:
|
||||
return GL_UNSIGNED_SHORT;
|
||||
case AbstractTextureFormat::R32F:
|
||||
|
@ -189,6 +189,12 @@ VkFormat VKTexture::GetVkFormatForHostTextureFormat(AbstractTextureFormat format
|
||||
case AbstractTextureFormat::BGRA8:
|
||||
return VK_FORMAT_B8G8R8A8_UNORM;
|
||||
|
||||
case AbstractTextureFormat::RGB10_A2:
|
||||
return VK_FORMAT_A2R10G10B10_UNORM_PACK32;
|
||||
|
||||
case AbstractTextureFormat::RGBA16F:
|
||||
return VK_FORMAT_R16G16B16A16_SFLOAT;
|
||||
|
||||
case AbstractTextureFormat::R16:
|
||||
return VK_FORMAT_R16_UNORM;
|
||||
|
||||
|
Reference in New Issue
Block a user