mirror of https://github.com/RPCS3/rpcs3.git
vk: Fix vertex winding (#1934)
* vk: do not flip face winding based on shader origin * vk: disable face culling
This commit is contained in:
parent
2337bf204c
commit
2e5b01faca
|
@ -264,15 +264,10 @@ namespace vk
|
||||||
|
|
||||||
VkFrontFace get_front_face(rsx::front_face ffv)
|
VkFrontFace get_front_face(rsx::front_face ffv)
|
||||||
{
|
{
|
||||||
u32 mask = 1;
|
|
||||||
|
|
||||||
if (rsx::to_window_origin((rsx::method_registers[NV4097_SET_SHADER_WINDOW] >> 12) & 0xf) == rsx::window_origin::bottom)
|
|
||||||
mask = 0;
|
|
||||||
|
|
||||||
switch (ffv)
|
switch (ffv)
|
||||||
{
|
{
|
||||||
case rsx::front_face::cw: return (VkFrontFace)(VK_FRONT_FACE_CLOCKWISE ^ mask);
|
case rsx::front_face::cw: return VK_FRONT_FACE_CLOCKWISE;
|
||||||
case rsx::front_face::ccw: return (VkFrontFace)(VK_FRONT_FACE_COUNTER_CLOCKWISE ^ mask);
|
case rsx::front_face::ccw: return VK_FRONT_FACE_COUNTER_CLOCKWISE;
|
||||||
default:
|
default:
|
||||||
throw EXCEPTION("Unknown front face value: 0x%X", ffv);
|
throw EXCEPTION("Unknown front face value: 0x%X", ffv);
|
||||||
}
|
}
|
||||||
|
@ -997,28 +992,29 @@ bool VKGSRender::load_program()
|
||||||
properties.rs.rasterizerDiscardEnable = VK_FALSE;
|
properties.rs.rasterizerDiscardEnable = VK_FALSE;
|
||||||
properties.rs.depthBiasEnable = VK_FALSE;
|
properties.rs.depthBiasEnable = VK_FALSE;
|
||||||
|
|
||||||
if (rsx::method_registers.cull_face_enabled())
|
// if (rsx::method_registers.cull_face_enabled())
|
||||||
{
|
// {
|
||||||
switch (rsx::method_registers.cull_face_mode())
|
// switch (rsx::method_registers.cull_face_mode())
|
||||||
{
|
// {
|
||||||
case rsx::cull_face::front:
|
// case rsx::cull_face::front:
|
||||||
properties.rs.cullMode = VK_CULL_MODE_FRONT_BIT;
|
// properties.rs.cullMode = VK_CULL_MODE_FRONT_BIT;
|
||||||
break;
|
// break;
|
||||||
case rsx::cull_face::back:
|
// case rsx::cull_face::back:
|
||||||
properties.rs.cullMode = VK_CULL_MODE_BACK_BIT;
|
// properties.rs.cullMode = VK_CULL_MODE_BACK_BIT;
|
||||||
break;
|
// break;
|
||||||
case rsx::cull_face::front_and_back:
|
// case rsx::cull_face::front_and_back:
|
||||||
properties.rs.cullMode = VK_CULL_MODE_FRONT_AND_BACK;
|
// properties.rs.cullMode = VK_CULL_MODE_FRONT_AND_BACK;
|
||||||
break;
|
// break;
|
||||||
default:
|
// default:
|
||||||
properties.rs.cullMode = VK_CULL_MODE_NONE;
|
// properties.rs.cullMode = VK_CULL_MODE_NONE;
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
properties.rs.cullMode = VK_CULL_MODE_NONE;
|
// properties.rs.cullMode = VK_CULL_MODE_NONE;
|
||||||
|
|
||||||
properties.rs.frontFace = vk::get_front_face(rsx::method_registers.front_face_mode());
|
properties.rs.frontFace = vk::get_front_face(rsx::method_registers.front_face_mode());
|
||||||
|
properties.rs.cullMode = VK_CULL_MODE_NONE;
|
||||||
|
|
||||||
size_t idx = vk::get_render_pass_location(
|
size_t idx = vk::get_render_pass_location(
|
||||||
vk::get_compatible_surface_format(rsx::method_registers.surface_color()).first,
|
vk::get_compatible_surface_format(rsx::method_registers.surface_color()).first,
|
||||||
|
|
Loading…
Reference in New Issue