- change the images to be upside down until presentation to increase compatibility with shaders designed for OpenGL

- clamp scissors fully to avoid NVidia's awful drivers locking up the entire system if they end up out of bounds
- perform buffer clears as part of the render pass. this puts some restrictions on how FRenderState.Clear can be used
- add an offset uniform to the present shaders so the vulkan target can flip the image during presentation
This commit is contained in:
Magnus Norddahl 2019-03-12 23:53:20 +01:00
commit dca0b75038
14 changed files with 75 additions and 166 deletions

View file

@ -613,8 +613,9 @@ struct PresentUniforms
int GrayFormula;
int WindowPositionParity; // top-of-window might not be top-of-screen
FVector2 Scale;
FVector2 Offset;
float ColorScale;
float Padding1, Padding2, Padding3;
float Padding;
static std::vector<UniformFieldDesc> Desc()
{
@ -627,6 +628,7 @@ struct PresentUniforms
{ "GrayFormula", UniformType::Int, offsetof(PresentUniforms, GrayFormula) },
{ "WindowPositionParity", UniformType::Int, offsetof(PresentUniforms, WindowPositionParity) },
{ "UVScale", UniformType::Vec2, offsetof(PresentUniforms, Scale) },
{ "UVOffset", UniformType::Vec2, offsetof(PresentUniforms, Offset) },
{ "ColorScale", UniformType::Float, offsetof(PresentUniforms, ColorScale) },
};
}