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 ||
|
return format == DXGI_FORMAT_R16G16_FLOAT || format == DXGI_FORMAT_R16G16_TYPELESS ||
|
||||||
format == DXGI_FORMAT_R32G32_FLOAT || format == DXGI_FORMAT_R32G32_TYPELESS ||
|
format == DXGI_FORMAT_R32G32_FLOAT || format == DXGI_FORMAT_R32G32_TYPELESS ||
|
||||||
format == DXGI_FORMAT_R16G16B16A16_FLOAT || format == DXGI_FORMAT_R16G16B16A16_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:
|
case Plane::Exposure:
|
||||||
return format == DXGI_FORMAT_R32_FLOAT || format == DXGI_FORMAT_R32_TYPELESS ||
|
return format == DXGI_FORMAT_R32_FLOAT || format == DXGI_FORMAT_R32_TYPELESS ||
|
||||||
format == DXGI_FORMAT_R16_FLOAT || format == DXGI_FORMAT_R16_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]);
|
half[x * 2 + 1] = float_to_half(mv[1]);
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2515,6 +2522,7 @@ static bool vram_motion_blit_supported(VkFormat format)
|
|||||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||||
case VK_FORMAT_R32G32_SFLOAT:
|
case VK_FORMAT_R32G32_SFLOAT:
|
||||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||||
|
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||||
return vram_blit_supported(format, VK_FORMAT_R16G16_SFLOAT);
|
return vram_blit_supported(format, VK_FORMAT_R16G16_SFLOAT);
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in new issue
Block a user