Add R8G8B8A8_UNORM motion vector format
Spider-Man Remastered uses R8G8B8A8_UNORM (DXGI fmt=28) for (some?) motion vectors. Signed-off-by: Tk-Glitch <[email protected]>
This commit is contained in:
1 parent
c4954dc3c4
commit
58c1edf767
1 file changed
+9
-1
@@ -866,7 +866,7 @@ static bool supported_input(Plane plane, DXGI_FORMAT format)
|
||||
return format == DXGI_FORMAT_R16G16_FLOAT || format == DXGI_FORMAT_R16G16_TYPELESS ||
|
||||
format == DXGI_FORMAT_R32G32_FLOAT || format == DXGI_FORMAT_R32G32_TYPELESS ||
|
||||
format == DXGI_FORMAT_R16G16B16A16_FLOAT || format == DXGI_FORMAT_R16G16B16A16_TYPELESS ||
|
||||
format == DXGI_FORMAT_R32G32B32A32_FLOAT;
|
||||
format == DXGI_FORMAT_R32G32B32A32_FLOAT || format == DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
case Plane::Exposure:
|
||||
return format == DXGI_FORMAT_R32_FLOAT || format == DXGI_FORMAT_R32_TYPELESS ||
|
||||
format == DXGI_FORMAT_R16_FLOAT || format == DXGI_FORMAT_R16_TYPELESS ||
|
||||
@@ -1018,6 +1018,13 @@ static void convert_row_in(Plane plane, DXGI_FORMAT format, const uint8_t* sourc
|
||||
half[x * 2 + 1] = float_to_half(mv[1]);
|
||||
break;
|
||||
}
|
||||
case DXGI_FORMAT_R8G8B8A8_UNORM:
|
||||
{
|
||||
const uint8_t* rgba = source + x * 4;
|
||||
half[x * 2] = float_to_half(static_cast<float>(rgba[0]) / 255.0f);
|
||||
half[x * 2 + 1] = float_to_half(static_cast<float>(rgba[1]) / 255.0f);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -2515,6 +2522,7 @@ static bool vram_motion_blit_supported(VkFormat format)
|
||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||
case VK_FORMAT_R32G32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
return vram_blit_supported(format, VK_FORMAT_R16G16_SFLOAT);
|
||||
default:
|
||||
return false;
|
||||
|
||||
Reference in new issue
Block a user