Unknown W. Brackets
00b57f6a16
Correct clamped depth offset.
...
Oops, forgot to fix this when I fixed the scale. It's already for a
[-1, 1] range, and needs to be corrected for accordingly.
Fixes #8425 , other depth issues in Phantasy Star Portable 2.
2016-01-16 00:18:25 -08:00
Unknown W. Brackets
7e54368998
Correct depth offset when clamped.
...
Of course, the scale is already half, so we just need to double for d3d9,
and not double for OpenGL of course.
Our offset is already in [0, 1] so we keep it.
2016-01-03 19:59:35 -08:00
Unknown W. Brackets
529abd7db4
Correct clamped depth range from [0, 65535].
...
This changes a few things:
* All backends clamp the depth range and keep it positive.
* The depth rounding uniform is now properly dirtied.
* Projection is updated to translate and scale appropriately.
* Depth rounding is halved on OpenGL to account for [-1, 1] range.
Fixes Phantasy Star Portable 2 without the need for a game-specific hack.
2016-01-03 12:29:43 -08:00
Unknown W. Brackets
18cdf9f352
Remove the depth range hack.
...
Ths removes the game-specific hack to workaround depth issues.
2016-01-03 12:05:59 -08:00
Unknown W. Brackets
941988cde4
Correct prescale issues with render-to-texture.
...
Still need to apply the scaling of the texture coordinates here (or
somewhere, maybe we prescale that as well? Except it's figured later on
in the process...)
2015-12-20 21:13:43 -08:00
Henrik Rydgard
4b360a571c
Remove the depth range hack option, turning it into an ugly game specific compatibility hack.
...
I hate doing this, but it's not really better off as an option.
See #8171
2015-11-15 23:00:25 +01:00
Henrik Rydgard
5667f34805
Invert proj matrix offset properly in D3D.
2015-11-09 21:21:55 +01:00
Henrik Rydgard
8b3ff8a5b6
Correctly flip matrices in DX9 as well.
2015-11-04 22:37:42 +01:00
Henrik Rydgard
85229efef4
D3D9: Generate shaders directly from shader IDs, just like we do in GL.
2015-10-25 00:34:23 +02:00
Henrik Rydgard
92389a4966
Use a common ShaderId class. Start moving shader ID code to GPU/Common
2015-10-24 23:24:06 +02:00
Henrik Rydgard
08b340f423
More D3D hackery: Take inverted Z in proj matrix into account.
...
Also, *2 breaks it for no good reason so don't do that.
2015-08-30 22:45:24 +02:00
Henrik Rydgard
488c62e534
This makes slightly more sense than the last commit.
2015-08-29 20:38:19 +02:00
Henrik Rydgard
7b0a31ade5
Adjust D3D depth calculations to get them to match OpenGL as close as I can get it.
2015-08-29 17:43:09 +02:00
Henrik Rydgard
76eacf32f4
Change the offset to 0.0
2015-08-27 18:02:45 +02:00
Henrik Rydgard
2b7d08e3af
Also apply the GT fix in D3D, doh
2015-08-27 18:01:00 +02:00
Henrik Rydgard
bf6aef44cd
Oops, didn't finish the D3D code
2015-08-26 17:45:21 +02:00
Henrik Rydgard
1e8a1b801f
Rename viewportX1/X2 etc to scale + center, which is what they actually are.
2015-08-26 15:24:35 +02:00
Henrik Rydgard
29fc9e81a4
Use the gstate.getViewport* accessors.
2015-08-26 15:24:35 +02:00
The Dax
7104629b24
Add the Phantasy Star Portable 2 depth range hack to Direct3D9 as well.
...
It seems to work fine for me..
2015-02-23 04:42:04 -05:00
Henrik Rydgard
eaa1f0c23d
Port over the fog NaN/inf fixes from OpenGL to Direct3D. Fixes skies in Outrun and probably a few other things
2014-12-22 00:48:16 +01:00
Unknown W. Brackets
8900f17f99
dx9: Correct half-pixel offset.
...
This fixes the pixel of blank space at the top, and the gpu/commands/basic
test.
2014-12-21 10:37:35 -08:00
Unknown W. Brackets
b9e78dab9c
dx9: Small optimization to viewport scaling.
2014-12-21 10:35:04 -08:00
Unknown W. Brackets
0fc311a319
dx9: Compensate for viewport w/h adjustments.
...
Fixes text in Final Fantasy 4, world map in Star Ocean, etc.
2014-12-18 22:24:47 -08:00
Henrik Rydgard
e2d2950865
Add a sanity check for shader linking, active in debug mode
2014-12-14 20:17:29 +01:00
Unknown W. Brackets
d1e992736b
Simplify the viewport code a bit.
2014-09-24 23:09:09 -07:00
Unknown W. Brackets
e3d6f19a2e
d3d9: Update some not-yet-used ps uniforms.
2014-09-21 10:41:44 -07:00
Henrik Rydgard
9bb5bd6fb3
Of course have to update these as well.
2014-09-19 00:39:34 +02:00
Henrik Rydgard
9c625a79a1
DX9: Use 4x3 matrices for bones too. Compact shader constants.
2014-09-18 23:14:53 +02:00
Henrik Rydgard
6304d60b40
Convert 4x4 to 4x3 matrices where possible (except bones)
2014-09-18 23:08:46 +02:00
Unknown W. Brackets
ff3c5075fa
d3d: Apply a half pixel offset when rendering.
...
Makes things a lot sharper, although there still seem to be problems.
This makes it so the viewport aligns with pixel edges rather than centers
at whole integers.
2014-09-13 22:08:43 -07:00
Henrik Rydgard
7b66059ae0
D3D: Assorted cleanup. Add a missing register specification.
2014-09-10 15:20:57 +02:00
Henrik Rydgard
163f81e5be
DX9: "Linked" shaders are now pointless, so remove them.
2014-09-10 14:07:30 +02:00
Henrik Rydgard
0dc6150a2e
DX9: Not much point in tracking dirtiness per shader now that all constants are shared.
2014-09-10 13:57:19 +02:00
Henrik Rydgard
8bca420c0a
Some renaming
2014-09-10 13:48:55 +02:00
Henrik Rydgard
bf7a4f9097
D3D: Use fixed constant registers for vertex shaders too.
2014-09-10 13:43:35 +02:00
Henrik Rydgard
d2d563cd2c
D3D: Use fixed constant registers for pixel shader constants
2014-09-10 12:59:33 +02:00
Henrik Rydgard
14c8733def
Uniforms/constants aren't shared in D3D, let's not pretend they are.
2014-09-10 12:40:15 +02:00
Henrik Rydgard
8ef326e531
D3D: Remove now-redundant texture coord scaling now that we decode the 8-bit and 16-bit formats in the vertex decoder
2014-09-09 22:32:59 +02:00
Unknown W. Brackets
030a9d55e7
d3d: Use unnormalized values for alpha testing.
...
Fixes Tales of Eternia's world map, Popolocrois everwhere, etc.
If PowerVR is using this method on GLES, it may be broken for the same
reasons.
2014-09-08 21:37:25 -07:00
Henrik Rydgard
ef0ae77e98
D3D: some cleanup and a crashfix on shutdown
2014-09-09 00:29:01 +02:00
Unknown W. Brackets
923c535deb
Merge pull request #6861 from hrydgard/depth-d3d
...
Improve depth buffering in D3D by computing a depth-flipped proj matrix but only when needed.
2014-09-08 14:17:19 -07:00
Henrik Rydgard
01a1438dce
Improve depth buffering in D3D by computing a depth-flipped proj matrix but only when needed.
2014-09-08 23:10:23 +02:00
Unknown W. Brackets
564ae9f184
d3d: Report shader compilation failures.
2014-09-07 11:01:19 -07:00
Unknown W. Brackets
4d54cad9bd
d3d: Reduce D3DX leaks.
2014-09-07 10:38:49 -07:00
Henrik Rydgard
780ed765c7
Update dx9sdk (got rid of redundant headers)
2014-09-07 10:45:38 +02:00
Henrik Rydgard
1d7642fa48
Remove most mentions of the "_XBOX" define
2014-08-24 14:21:35 +02:00
Ced2911
ef54989598
[Gpu] update code, cleanup shaders generation: fixes rr2 lighting !
...
Conflicts:
GPU/Directx9/PixelShaderGeneratorDX9.cpp
GPU/Directx9/ShaderManagerDX9.cpp
GPU/Directx9/VertexDecoderDX9.cpp
2014-08-24 13:43:09 +02:00
Ced2911
49cc8e7312
[Gpu] Sync with gles
...
Conflicts:
GPU/Directx9/FramebufferDX9.cpp
GPU/Directx9/FramebufferDX9.h
GPU/Directx9/TransformPipelineDX9.cpp
2014-08-24 10:40:16 +02:00
Henrik Rydgard
1556234825
Bit more d3d stuff. Can't get depth right, pretty sure it's the projection matrix calc.
2014-08-23 01:52:46 +02:00
Unknown W. Brackets
2038bc5527
Support alpha / color test masks on desktop/gles3.
...
Won't work on GLES 2, though...
2014-06-16 00:33:48 -07:00