reduced frequency of dx9 ps_2_0 pixel generation errors, and made dx9 efb depth peek of 16-bit depth buffer not use 24-bit adjustment factor. shouldn't affect other the plugins.

(probably nobody else cares, but I need at least one video plugin that actually works on this computer)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6618 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nitsuja-
2010-12-19 20:59:23 +00:00
parent 47454a4ed9
commit 98fe8437ae
12 changed files with 200 additions and 166 deletions

View File

@ -589,13 +589,22 @@ u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data)
D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
D3DFORMAT bformat = FramebufferManager::GetEFBDepthRTSurfaceFormat();
int depthConversionType;
if(bformat == FOURCC_RAWZ)
depthConversionType = PixelShaderCache::DEPTH_CONVERSION_TYPE_NONE;
else if(bformat == FOURCC_DF16)
depthConversionType = PixelShaderCache::DEPTH_CONVERSION_TYPE_16BIT;
else
depthConversionType = PixelShaderCache::DEPTH_CONVERSION_TYPE_24BIT;
D3D::drawShadedTexQuad(
read_texture,
&RectToLock,
Renderer::GetFullTargetWidth(),
Renderer::GetFullTargetHeight(),
4, 4,
(FramebufferManager::GetEFBDepthRTSurfaceFormat() == FOURCC_RAWZ) ? PixelShaderCache::GetColorMatrixProgram(0) : PixelShaderCache::GetDepthMatrixProgram(0),
PixelShaderCache::GetDepthMatrixProgram(0, depthConversionType),
VertexShaderCache::GetSimpleVertexShader(0));
D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER);