mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 03:25:16 +00:00
rsx: Implement QUAD_STRIP
- QUAD_STRIP evaluates to TRIANGLE_STRIP in memory. The memory layout is identical. - The only difference between the two modes would be the primitive_ID but that doesnt matter on RSX - Its worth noting that results will be different between the two modes if input vertices are non-coplanar for every set of N verts
This commit is contained in:
parent
e56d8db6a3
commit
fe5828cb47
4 changed files with 5 additions and 5 deletions
|
@ -610,12 +610,12 @@ bool is_primitive_native(rsx::primitive_type draw_mode)
|
|||
case rsx::primitive_type::line_strip:
|
||||
case rsx::primitive_type::triangles:
|
||||
case rsx::primitive_type::triangle_strip:
|
||||
case rsx::primitive_type::quad_strip:
|
||||
return true;
|
||||
case rsx::primitive_type::line_loop:
|
||||
case rsx::primitive_type::polygon:
|
||||
case rsx::primitive_type::triangle_fan:
|
||||
case rsx::primitive_type::quads:
|
||||
case rsx::primitive_type::quad_strip:
|
||||
return false;
|
||||
}
|
||||
fmt::throw_exception("Wrong primitive type" HERE);
|
||||
|
|
|
@ -304,7 +304,7 @@ D3D12_PRIMITIVE_TOPOLOGY get_primitive_topology(rsx::primitive_type draw_mode)
|
|||
case rsx::primitive_type::triangle_strip: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP;
|
||||
case rsx::primitive_type::triangle_fan: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
|
||||
case rsx::primitive_type::quads: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
|
||||
case rsx::primitive_type::quad_strip: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
|
||||
case rsx::primitive_type::quad_strip: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP;
|
||||
case rsx::primitive_type::polygon: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
|
||||
}
|
||||
fmt::throw_exception("Invalid draw mode (0x%x)" HERE, (u32)draw_mode);
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace gl
|
|||
case rsx::primitive_type::triangle_strip: return GL_TRIANGLE_STRIP;
|
||||
case rsx::primitive_type::triangle_fan: return GL_TRIANGLE_FAN;
|
||||
case rsx::primitive_type::quads: return GL_TRIANGLES;
|
||||
case rsx::primitive_type::quad_strip: return GL_TRIANGLES;
|
||||
case rsx::primitive_type::quad_strip: return GL_TRIANGLE_STRIP;
|
||||
case rsx::primitive_type::polygon: return GL_TRIANGLES;
|
||||
}
|
||||
fmt::throw_exception("unknow primitive type" HERE);
|
||||
|
@ -543,9 +543,9 @@ namespace gl
|
|||
case rsx::primitive_type::triangles:
|
||||
case rsx::primitive_type::triangle_strip:
|
||||
case rsx::primitive_type::triangle_fan:
|
||||
case rsx::primitive_type::quad_strip:
|
||||
return true;
|
||||
case rsx::primitive_type::quads:
|
||||
case rsx::primitive_type::quad_strip:
|
||||
case rsx::primitive_type::polygon:
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -25,11 +25,11 @@ namespace vk
|
|||
case rsx::primitive_type::triangles:
|
||||
return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
|
||||
case rsx::primitive_type::triangle_strip:
|
||||
case rsx::primitive_type::quad_strip:
|
||||
return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
|
||||
case rsx::primitive_type::triangle_fan:
|
||||
return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN;
|
||||
case rsx::primitive_type::quads:
|
||||
case rsx::primitive_type::quad_strip:
|
||||
case rsx::primitive_type::polygon:
|
||||
requires_modification = true;
|
||||
return VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
|
||||
|
|
Loading…
Add table
Reference in a new issue