Ignore upper bits of prim type.

This matches tests on what hardware does.
This commit is contained in:
Unknown W. Brackets committed 2016-04-10 13:11:55 -07:00
1 parent e95b2cf0d5
commit d920ffdcad
4 files changed
+7 -4

No files matched your search

+2 -1
View File
@@ -776,7 +776,8 @@ void GPU_DX9::Execute_Prim(u32 op, u32 diff) {
u32 data = op & 0xFFFFFF;
u32 count = data & 0xFFFF;
GEPrimitiveType prim = static_cast<GEPrimitiveType>(data >> 16);
// Upper bits are ignored.
GEPrimitiveType prim = static_cast<GEPrimitiveType>((data >> 16) & 7);
if (count == 0)
return;
+2 -1
View File
@@ -948,7 +948,8 @@ void GPU_GLES::Execute_Prim(u32 op, u32 diff) {
u32 data = op & 0xFFFFFF;
u32 count = data & 0xFFFF;
GEPrimitiveType prim = static_cast<GEPrimitiveType>(data >> 16);
// Upper bits are ignored.
GEPrimitiveType prim = static_cast<GEPrimitiveType>((data >> 16) & 7);
if (count == 0)
return;
+2 -1
View File
@@ -822,7 +822,8 @@ void GPU_Vulkan::Execute_Prim(u32 op, u32 diff) {
u32 data = op & 0xFFFFFF;
u32 count = data & 0xFFFF;
GEPrimitiveType prim = static_cast<GEPrimitiveType>(data >> 16);
// Upper bits are ignored.
GEPrimitiveType prim = static_cast<GEPrimitiveType>((data >> 16) & 7);
if (count == 0)
return;
+1 -1
View File
@@ -152,7 +152,7 @@ static void ExpandRectangles(std::vector<GPUDebugVertex> &vertices, std::vector<
}
void CGEDebugger::UpdatePrimPreview(u32 op) {
const u32 prim_type = (op >> 16) & 0xFF;
const u32 prim_type = (op >> 16) & 0x7;
int count = op & 0xFFFF;
if (prim_type >= 7) {
ERROR_LOG(COMMON, "Unsupported prim type: %x", op);