**Changes**

* More formats recognition for "Clear Screen" step. Improved the ability handling the alpha channel (% color translucency).
* Related to CPUID detecting:
	- Added support displaying correct SysInfo for recent multicore Intel CPUs x86-64 with HT/SMT (Core i3/i5/i7 and Xeon) based on Nehalem architecture.

+ minor and passive changes.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6604 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
gnick79
2010-12-18 18:23:22 +00:00
parent 42e40b46c0
commit 522746b2c2
14 changed files with 56 additions and 30 deletions

View File

@ -96,8 +96,18 @@ void ClearScreen(const BPCmd &bp, const EFBRectangle &rc)
{
u32 color = (bpmem.clearcolorAR << 16) | bpmem.clearcolorGB;
u32 z = bpmem.clearZValue;
// texture formats logic transposition from "EFB Copy to Texture" to "Copy Clear Screen" concepts.
// this it's a deduction without assurance. Ref. (p.12(Nintendo Co., Ltd. US 2010/0073394 A1))
UPE_Copy EFB_copy = bpmem.triggerEFBCopy;
g_renderer->ClearScreen(rc, colorEnable, alphaEnable, zEnable, color, z);
// since this is an early implementation and we can't be sure, forward clauses are fairly restrictive.
if (EFB_copy.tp_realFormat() == 6) // RGBA8
color |= (!EFB_copy.intensity_fmt && z > 0) ? 0xFF000000 : 0x0;
else if (EFB_copy.tp_realFormat() == 7) // A8
color |= ((!EFB_copy.intensity_fmt && bpmem.zcontrol.pixel_format > 3) || z > 0) ? 0xFF000000 : 0x0;
g_renderer->ClearScreen(rc, colorEnable, zEnable, color, z);
}
}