Commit Graph

59 Commits

Author SHA1 Message Date
lightningterror 614209be2d GSdx-d3d: Change DATE variable to local. 2018-10-04 05:39:01 +02:00
lightningterror ef29daa9d0 GSdx-d3d: purge GSDrawingContext* context and GSDrawingEnvironment env from GSRendererDX.h
Not used anywhere in dx code and the code is already defined in
GSState.h with member variable names.
2018-10-03 04:41:17 +02:00
Jonathan Li 2f5ba10e6b gsdx:hw: Move TC offset variables to GSRendererHW
Also rename them for consistency.
2018-09-20 01:01:49 +01:00
lightningterror 577bfaa8cd GSdx-d3d: Move Selector reset states in to a separate function.
Also move vs_sel def in header file and rename it using the member name.

Code is easier to read/move/adjust similar to GL.
2018-09-15 05:49:18 +02:00
lightningterror 0e83b89dbd GSdx-D3D: Texture and channel shuffle improvements.
Texture Shuffle changes:
Always Enable Texture shuffle on D3D10/11.
Previously Texture shuffle was enabled if CRC hack
level was below Full, this was kinda not good since
D3D also relies on CRC hacks on Full so you could either
stick with texture shuffle or crc hacks.

Texture shuffle is not supported on D3D9, however we can do a partial
port where instead of vertical lines with the effect we get the effect
on the entire screen. Better than nothing I suppose.

Ported some of the code from OpenGL to D3D
( just a copy - paste job :) ),
part of the code misses a dedicated shader but we can still
use it to fix various issues on many games.

List of affected games tested so far:
The Godfather, Final Fight Streetwise, The Suffering Ties that Bind,
Urban Chaos have their vertical lines issues fixed
(highly possible for other games as well), MGS and Stolen see an improvement
but they are still broken without crc hacks. Other games that suffered
similar issues are probably affected as well.

Channel Shuffle changes:
Update Channel Shuffle detection. A lot of games should see an improvement,
MGS, Urban Chaos, Stolen have their top left corner issues resolved.
Other games should be affected as well that use similar logic.
They still miss a shader so some effects are still broken/show glitches
but it's a nice improvement for D3D users.

Shared changes:
Texture Shuffle and Channel shuffle have been moved to their
own dedicated functions. Should make things a bit cleaner.

Move part of the code for Texture Shuffle to GSRendererHW to be shared
across all HW renderers, should aboid copy paste/duplicate code.
2018-03-23 13:38:34 +01:00
FlatOutPS2 557b672232 GSdx: Unscale Point and Line Direct3D11 port
Ports the "Unscale Point and Line" hack to the Direct3D11 Hardware renderer.

And enables the "Unscale Point and Line" hack for Custom Resolutions with Direct3D11 and OpenGL.
2017-04-01 11:16:25 +02:00
FlatOutPS2 975441dfe9 GSdx: Direct3D port of HPO special/V2
Adds a port of the new Half-pixel Offset options for the Direct3D
Hardware renderers.
2017-04-01 11:16:25 +02:00
Akash 055f236aa5 GSVector: Add constructor to dispatch same values 2016-11-01 17:54:46 +01:00
FlatOutPS2 c5cd716c20 Gsdx alpha test improvement DX
Port for the DX renderers of the alpha test improvement for OGL created by gregory38.
2016-08-19 15:59:54 +02:00
gabest11@gmail.com d27b606e5c GSdx:
- changed the KH2 fix in GetTextureMinMax to my taste, should give the same results, when the used texture rect is to the left/above the clamped area, it returns [min, min+1], and [max-1, max] for right/below
- m_mem.m_clut.Read32 was returned to its original place from GetAlphaMinMax
- UserHacks_WildHack was moved up to GSState, special UV handlers are only used when this setting is active
- updated xbyak to the latest available (avx2 seems incomplete, the 256-bit promoted old instructions are missing)
- changed vtune's include path to the 2013 edition

Some other not yet commited changes from a year ago:
- WriteImageX overflow crash-fix
- moved colclamp after dithering (sw mode), it makes more sense, no visible changes noticed
- Gif_Tag::analyzeTag(), there was a conditional I didn't like, split the loop into two parts

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5649 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-06 11:36:01 +00:00
ramapcsx2 94cad4a61a GSdx: New hack from KrossX lets users configure their own texture coordinate offset via hacks dialog. This can be used to fine tune correction of upscale glitches versus the problems that come with it. I guess this is able to correct nearly all ghosting and bad text issues games can have! Thanks for this nice patch, KrossX :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5556 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-02-12 10:57:48 +00:00
gregory.hainaut e06484adb8 gsdx: update the copyrigh address thank to sed
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5412 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-09-09 18:16:11 +00:00
sudonim1@gmail.com 5f28d08286 GSDX: New interpretation of destination alpha testing to improve effect rendering as an optional hack. Known to make shadows in the persona games (and thus probably shin megami tensei) better, not sure what else it accomplishes without destroying other effects.
Now, a note about the actual issue.  Destination alpha tests can be used on the GS as one of the workarounds for a lack of stencils.  If you use a destination alpha test and leave alpha writing on, the GS will only write each pixel until you write an alpha value which would fail the test.  This works to a point in gsdx without further hacking, but that point is when within a single batch of primitives the same pixels are written multiple times and the destination alpha test is expected to update.  I did experimentally make a tight loop updating the stencil with a draw then drawing for one primitive at a time, but it was prohibitively slow (over 80% fps loss, you really don't want to know).

Destination alpha testing cannot be directly implemented in D3D9 or D3D10, but (probably) can in D3D11 (with a speed hit for sure, but I doubt it'll be 80%).  I'll be getting a new graphics card and looking into that.

And before some idiot says it, the answer is no.  OpenGL does not help.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5346 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-07-24 02:20:07 +00:00
ramapcsx2 1595136a9d GSdx:
Another refinement to the Wild Arms hack by KrossX.
The hack now only applies to one kind of geometry (sent using  the unpacked UV handler).
This works nicer in Wild Arms as it fixes "jumpy" characters.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5124 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-03-08 17:18:22 +00:00
ramapcsx2 d2665e9bc4 GSdx: The "enable hacks" checkbox works to toggle all hacks.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5118 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-03-06 20:01:27 +00:00
gabest11 5de9f84fae GSdx: quick fix for unreal tournament (and others using DATE)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5075 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-01-19 10:24:07 +00:00
gabest11 9ec7f14fa8 GSdx: Simplified vertex formats and the related code, everything works with the basic GSVertex until it gets uploaded to the vertex buffer.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5074 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-01-19 04:53:36 +00:00
gabest11 f68f007f00 GSdx: the promised index buffer update, needed a lot of changes, expect bugs in the next dozen revisions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5045 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-01-05 02:40:24 +00:00
ramapcsx2 527df7420b V2 of the previous GSdx hack: Now also works in pointlisted FMV's (FFX-2, Legend of Legaia).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4838 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-08-01 17:42:01 +00:00
ramapcsx2 e181358986 Hack for GSdx hardware to fix inverted videos that showed up with the new GIF rewrite.
The problem as I understood is is incomplete COLCLAMP support.
Thanks to sudo for the hack :)

(Unfortunately we couldn't find out more about why these FMV also *all* flicker.)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4837 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-08-01 17:18:13 +00:00
gabest11 bfbf403bf4 GSdx: FXAA 3.10, page up key activates it
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4828 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-07-25 11:16:01 +00:00
gabest11 732b038571 GSdx: mipmapping fix (ford mustang racing, and probably other games which use small, non-square textures)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4529 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-04-04 11:05:54 +00:00
gabest11 b31634df8f GSdx: using mipmap levels (only per batch, no tri-linear) and a couple of small changes, including the stdcall fix for linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4419 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-12 22:10:58 +00:00
gabest11 d23d7e2617 Just moving code around.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4312 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-18 03:50:12 +00:00
gabest11 ca7abd983a Mostly code cleanups, XBYAK 2.99, VEX conversion for the sw renderer (3-5% faster), GSState::Move fix for dark cloud 2 invention crash.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4287 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-07 01:59:05 +00:00
ramapcsx2 58697dbe8f GSdx:
Get the offset hack working normally again.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3011 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-05-15 04:51:15 +00:00
sudonim1 c7aa146489 I hate D3D.
32-bit depth buffers for D3D9 users if available.  Lots of code shuffling for reasons I don't even remember.  Stuff.  Pretty much just the 32-bit depth buffers.  That's good though, you don't have to envy D3D10 users half as much now.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3002 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-05-14 14:05:39 +00:00
sudonim1 a3f9d74255 GSDx: very minor change to Z value scaling and a note for future changes based on testing real hardware.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2966 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-05-08 01:05:32 +00:00
sudonim1 4457fe40fc Removed all trailing whitespace in *.c *.cpp *.h because it irritates me.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2897 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-25 00:31:27 +00:00
sudonim1 a05e9c62be Set svn:eol-style=native on all *.c *.cpp *.h
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2894 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-24 21:37:39 +00:00
ramapcsx2 d29b968e51 GSdx:
- Moved the offset hack to CreateSource(), it can work a bit more selectively there.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2714 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-03-14 19:35:10 +00:00
sudonim1 ad21a894fc GSDx: Fixed channel masking in DX9 HW. The red and blue channels were reversed.
GSDx: Removed discards from partial colclamp support as it wasn't doing much good and definitely won't be necessary with the next stage of support.  No significant functional change probably.

As before, please do a full rebuild of gsdx.  I hate it as much as you but don't know how to make VS smarter about this.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2712 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-03-14 11:33:12 +00:00
sudonim1 e8c73cef42 GSDX: Partial COLCLAMP support.
Fixes shadows in Ico and Shadow of the Colossus and hopefully fixes more effects in other games.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2702 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-03-12 19:01:05 +00:00
ramapcsx2 9960c24af7 GSdx:
- Added a hack that changes how alpha is handled.
This can be used to fix stuff like too bright blending, bad effect leftovers or "ghost layers".
Enable via ini > UserHacks_AlphaHack = 1

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2594 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-02-14 15:19:35 +00:00
ramapcsx2 ff30e8148b GSdx:
- Converted an upscale hack to the format I plan to use from now on. (Also makes this hack work better :p)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2422 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-01-10 05:18:44 +00:00
ramapcsx2 856bcef278 GSdx:
- Remove the silly upscale hacks from an earlier commit
- Replace them with a less silly version in CreateSource() :p
- Remove a few of the outer pixels from the visible area, as they often contain glitches

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2241 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-23 23:58:25 +00:00
ramapcsx2 03fc72dd3f GSdx:
- Added some sad attempt to fix small upscale annoyances. It's very hackish but better than nothing :p 
- Small cleanups

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2169 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-09 00:32:52 +00:00
Jake.Stine 34f30969bf GSdx: likely fix for the infamous DX10 memleak and resume/loadstate instabilities. Likely because I don't have DX10 capabilities, so I'm coding blindly as usual. ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2150 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-07 17:50:48 +00:00
ramapcsx2 9ccc7b2465 GSdx: More work on the effects. Found out I need to handle depth stencils ><
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2111 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-01 11:42:12 +00:00
ramapcsx2 e8d858c675 GSdx: Some fixes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2066 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-24 18:39:36 +00:00
Jake.Stine 788489f517 GSopen2: Fixed legacy mode compat and STGS operation.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1862 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-18 22:13:40 +00:00
Jake.Stine 27af8d80ca GSopen2: Simplified the multithreaded and irq callback parameter passing scheme, and made them more "robust" so that they can be changed dynamically without the GS exploding (important with the new correct GSState preservation across open/close).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1860 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-18 19:54:56 +00:00
Jake.Stine 73a39b012c GSopen2: Fixed a bug in gsdx where it didn't properly handle changes to the GS base register memory pointer.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1858 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-18 18:45:37 +00:00
Jake.Stine e4c0dfb6d3 GSopen2: Fixed GSdx so that it complies with the implied intent of the PS2E plugin API, where GSopen and GSclose retain the current GS emulation state. This required a couple significant changes:
* Removed GSTextureFX classes
 * Built shaders right into GSState classes, using GSStateDX as an interface, so that all shader caches get auto-destroyed along with GSState.

In addition to being a bit of a code cleanup, it should be a bit more efficient too since all of the extra dereferences to GSState from GSTextureFX have been removed. :)

git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1849 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-18 00:16:52 +00:00
Jake.Stine 8de579954f GSopen2: Current status...
* Software mode seems to work fine.  Suspend and resume emulation work nicely, without flaws.
 * Hardware DX9 mode suspends but displays only black after resuming.
 * Hardware DX10 status is unknown.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1842 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-17 07:40:38 +00:00
ramapcsx2 dc4f05d7c2 GSdx:
Initial pixel offsetting support via gsdx.ini.
Use pixoff_x = somevalue and pixoff_y = somevalue.
This can be used as a workaround for the various upscaling errors :)

Try these values for Takes of the Abyss for example:
pixoff_x=-8
pixoff_y=-8

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1650 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-19 01:08:40 +00:00
gabest11 3bd8037573 GSdx: fix for transparent walls in kingdom hearts (or anything else that sets AA1 with ABE off)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1611 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-07 21:11:27 +00:00
gabest11 cea0f395aa GSdx: experimenting with msaa, add msaa=N to gsdx.ini to activate it (N=2,4,8)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1597 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-02 23:07:30 +00:00
gabest11 cc3130660a GSdx:
- Automatic texture filtering should be ok now, occasionally point filtering was used. Tested it on the ps2 and figured with no mip levels LoD and minification settings are just ignored altogether.
- Also run a few tests on the gather instruction with the reference rasterizer and found a fatal flaw with it. It returns the four samples for bilinear sampling (in a funny order, which isn't documented of course, x = bl, y = br, z = tr, w = tl), but there is no way to guess which four were selected exactly. Due to some hidden rounding error it might grab different texels than I would when calculating the position of the upper-left texel, of which the fractional part is be used for the interpolation. When the texel positions do not match it leaves annoying discontinuity errors. Oh well...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1571 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-26 15:30:25 +00:00
gabest11 83b15dbac0 GSdx:
- trying the dx10.1-only "gather" shader instruction for palletized lookups ("8-bit texture" mode), saves 4 instructions which isn't much but still... (not tested, don't have ati)
- may fix the intel gma "no output" bug (don't have gma either :P)
- and the usual small code optimizations


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1549 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-22 03:55:28 +00:00