Commit Graph

3101 Commits

Author SHA1 Message Date
lightningterror 0901f0a848 GSdx: Remove some crc hacks for GSC_IkkiTousen.
Remove depth hacks that skipped shadow rendering, shadows work properly
on all renders.

Upscaling hack needs to be further tested.
2018-12-20 18:31:53 +01:00
Kojin e51eadaf16 gsdx-osd: Update m_font to use unique_ptr 2018-12-20 15:32:04 +01:00
Shanoah Alkire a4f794f3a6 GSdx: Add color to OSD, move it to its own tab, and change the widget defaults on the dialog box. 2018-12-20 15:32:04 +01:00
lightningterror 58be50d978 gsdx-osd: Update Linux dialog
Update linux dialog to match Windows.
Only color is missing.
2018-12-20 15:32:04 +01:00
Kojin f8ae0f7e19 gsdx-osd: Update osd gui
Add support for color picker, remove font selector, enable the menu for dx11 and some other tweaks.
2018-12-20 15:32:04 +01:00
Kojin 3819e22432 gsdx-osd: Add support for custom colors 2018-12-20 15:32:04 +01:00
Kojin 1b0112de22 gsdx-osd: Rename log speed to log timeout
Linux/Windows GUI to be updated in later commits.
2018-12-20 15:32:04 +01:00
Kojin 038ae8c7fc gsdx-osd: Switch to opacity
Switch to using opacity since this is how most software works.
Transparency is simply confusing to the average user.

Linux/Windows GUI to be updated in later commits.
2018-12-20 15:32:04 +01:00
Kojin d624927022 gsdx-osd: Scale based on window size
Switch to scaling on the window size instead of a hardcoded monitor res
2018-12-20 15:32:04 +01:00
Kojin 5e75a66f82 gsdx-d3d11: Port RenderOsd function from opengl to support osd on d3d11 2018-12-20 15:32:04 +01:00
KrossX 83d293d41c gsdx-d3d11: Port OSD shader from OGL 2018-12-20 15:32:04 +01:00
Kojin 5713993777 convert.fx: Add color support to IA
Support color input in vs and ps.
Skipping dx9.
2018-12-20 15:32:04 +01:00
Kojin e683ce2994 gsdx-osd: Update manager to support DX11
Fix an issue with w coordinate values being 0 which caused issues on DX11.
2018-12-20 15:32:04 +01:00
lightningterror 63bbf52219 GSdx-d3d11: Adjust DATE code, and remove rtCopy.
Remove DATE shader macro and bit.
Remove useless HasStencil case. If DATE is enabled stencil is also
enabled, this check is useless.
Remove leftover rt and rtCopy code case from d3d9.

Remove traces of rtCopy and sampler in slot 2.

rtcopy
2018-12-20 14:42:56 +01:00
lightningterror cdeacafd27 tfx.fx: Remove datst (DATE), and RTCopy.
Code was never hit on D3D11. D3D11 uses stencil operations.
Also Remove VS_RTCOPY which was used only by d3d9.

Remove RTCopy Sampler from the shader.

tfx rtcopy
2018-12-20 14:42:56 +01:00
lightningterror 8ec184d265 GSdx: Set some enum values correctly.
Previous commit broke the values with the removal on the d3d9 code.
2018-12-20 14:16:47 +01:00
lightningterror 824473a34b GSdx-gui: Remove some leftover D3D9 code in the gui. 2018-12-20 14:00:03 +01:00
lightningterror d4d95e2f10 GSdx: Adjust some of the crc hacks comments and what category they fall under. 2018-12-20 13:55:26 +01:00
lightningterror 697aa5e4b7 GSdx: Purge GSC_SpyroNewBeginning, GSC_SpyroEternalNight crc hacks.
Effect correctly emulated with texture shuffle on all renders.
2018-12-20 13:22:12 +01:00
lightningterror f0fec02eec GSdx: Purge GSC_StarWarsBattlefront and GSC_StarWarsBattlefront2 crc hacks.
Channel shuffle emulates the effects correctly on all renders.
2018-12-20 12:34:09 +01:00
lightningterror 6f6e5eb325 GSdx: Purge GSC_SoulCaliburGames crc hacks.
Depth emulation renders the background properly and the stage is no
longer dark.

Shadows are still missing on D3D11, colclip emulation perhaps.
2018-12-20 12:09:57 +01:00
lightningterror 6899fc74f9 GSdx: Purge GSC_HeavyMetalThunder crc hacks.
Depth renders effects properly on all renders.
2018-12-20 03:05:05 +01:00
lightningterror 415e27136e GSdx: Adjust/remove crc hacks GSC_FrontMission5, GSC_HauntingGround.
Remove one crc hack for GSC_HauntingGround. It skipped some depth
effects. Correctly rendered now

Remove all crc hacks for GSC_FrontMission5.
Texture shuffle, depth emulation and enabling Preload Frame Data
emulates the effects correctly.

Add a note for GSC_Tenchu for future testing.
2018-12-20 02:13:11 +01:00
lightningterror d9da9f4bc2 GSdx: Purge GSC_FinalFightStreetwise crc hacks.
Depth is emulated correctly on all renders.

Blending issues remains.
2018-12-20 02:01:57 +01:00
lightningterror fce3918562
GSdx: Purge Direct3D9 Render entirely. (#2762)
And the time has come to say good bye (good riddance?), this build removes Direct3D9 entirely from GSdx. D3D9 is/was holding us back in some D3D11 fixes that we want to further implement.
The last build that supports D3D9 is v1.5.0-dev-2779-g1a61148b0 for anyone still interested.

"Press F to pay respect.
2018-12-20 00:54:51 +01:00
lightningterror e091f4233a GSdx-d3d11: Remove commented out code for int_fst.
VS FST is already enabled, values are inverted on D3D11.
2018-12-19 19:59:23 +01:00
Kojin 0353273733 tfx.fx: Update Vertex and Geometry shaders to support the new
depth sample state.

Note this breaks D3D9 but we will be purging it shortly after
so there's nothing to worry about.
2018-12-19 19:59:23 +01:00
KrossX 3b11164637 tfx.fx: Add tfx shaders to support depth sampling.
Add clamp wrap uv depth,
Add sample depth.

Sample shaders depth fmt 1 and 2 are based on convert shaders.
2018-12-19 19:59:23 +01:00
lightningterror 1ad71a9b85 GSdx-gui: Remove Direct3D9 option from the gui.
D3D9 will be broken once #2756 is merged so let's disable it to avoid
any potential crashing if the render is selected.

Complete D3D9 purge will shortly follow afterwards.
2018-12-19 17:17:39 +01:00
lightningterror 1a61148b00 GSdx-d3d11: Redo destination format and alpha output.
Dfmt in texture shuffle function already picks the 16 format on slot 2
so it's better to let it call the shader instead of aout.

We can keep old aout code until FbMask emulation is added on d3d11. We
can purge aout along with alpha hack then.
Added fixme note.
2018-12-18 12:55:23 +01:00
lightningterror 0c0e0e9266 GSdx-d3d11: Add support for dfmt shader macro. 2018-12-18 12:55:23 +01:00
lightningterror 59752120d6 tfx.fx: Add support for dfmt to pick the shader for 16bit alpha output. 2018-12-18 12:55:23 +01:00
Kojin 5527bcb13e GSdx-debug: Do some casts and fix warnings. 2018-12-17 15:52:27 +01:00
lightningterror bf0106d2bc GSdx-d3d: Add remaining code for RGB channel.
Enable channel shuffle on GT3, GT4, Tourist Trophy and Tekken5.
And with that we reach OpenGL accuracy on this specific feature.
2018-12-17 11:50:16 +01:00
Kojin ef0ebd6517 gsdx-d3d11: Copy render target when it matches texture in slot 4
Needed for channel shuffle, this copies the render target when it's
the same as the resource texture bound on slot 4.
2018-12-17 11:43:15 +01:00
Kojin 554b797b92 gsdx-d3d11: Move shader/sample state set to it's own function 2018-12-17 11:43:15 +01:00
Kojin 84dbdd6b18 gsdx-d3d11: Add CopyRenderTarget function 2018-12-17 11:43:15 +01:00
Kojin 1427d55b08 gsdx-d3d11: Store shader resource textures on GSDevice11 2018-12-17 11:43:15 +01:00
Kojin a743707728 gsdx-d3d11: Store render target texture in GSDevice11 2018-12-17 11:43:15 +01:00
Kojin 07989a0a17 gsdx-d3d11: Add equality check for GSTexture11 2018-12-17 11:43:15 +01:00
lightningterror c2fd67b1cb GSdx-d3d11: Add remaining psm.depth code.
Fixes recent regression on Soul Calibur.
It helps isolate psm.depth when it should and shouldn't run even if
sampling isn't supported yet.

Finding Nemo depth issue remains.
People can use the option to disable depth for now on that game.
2018-12-17 07:17:17 +01:00
lightningterror 93f1dc2804 GSdx-d3d: Remove psm.depth skip on d3d.
I'm seeing better results with this skip not included.
So far DBZBT, God of War, Haunting Ground seem better.
Depth sampling is still not yet added.

Also fixes a regression in GT4 when depth was enabled because the skip
function was misplaced. Other games might've been affected as well.
2018-12-16 20:32:05 +01:00
lightningterror 7d938834d2 GSdx: Add crc id for ZettaiZetsumeiToshi2 EU.
SLES-54587 Raw Danger!
2018-12-16 16:02:50 +01:00
lightningterror bb0f08b2c1 GSdx-d3d: Simplify aout for reading. 2018-12-15 05:46:15 +01:00
lightningterror a8c2076d04 GSdx: Adjust God of War 1 and 2 crc hacks.
Move texture shuffle (shadows) hack to aggressive state.
Adjust water/hell effect crc hack - don't enable hack on native res if
crc is below aggressive, enable if resolution is higher on dx and gl
state.
2018-12-14 15:16:26 +01:00
lightningterror e87a6b9ccd GSdx-d3d11: Plug the TOA and Urban Chaos code in to channel shuffle.
On Tales of Abyss it fixes blur,
On Urban Chaos it fixes fog/transparent layer.

Note: Depth needs to be enabled on d3d11.
No support for d3d9 ofc.
2018-12-13 22:14:49 +01:00
lightningterror a1f4d2ca3f GSdx-d3d11: Add support for Tales of Abyss and Urban Chaos shader bit and shader macro. 2018-12-13 22:14:49 +01:00
KrossX 013c47950d tfx.tx: Add support for Tales of Abyss and Urban Chaos HLE shader.
Add sample_depth function, note only Tales of Abyss and Urban Chaos
depth sampling is supported, full depth fmt will need to wait a little
longer.
2018-12-13 22:14:49 +01:00
lightningterror 50b71f69da GSdx-d3d: Add fixme note fo rPSSetShaderResource slot 4 channel shuffle. 2018-12-13 01:47:10 +01:00
lightningterror 7215618621 GSdx-d3d11: Add support for depth convert format in texture sampler.
Idea is to allot partial support of depth fmt on the new depth convert
format, this way we can utilize channel shuffle on Red, Blue or gXbY
channels with depth shader conversion.

Terminator 3 hits this code path and seems to fix a transparent wall.
Other games will probably benefit from this as well.
2018-12-13 01:47:10 +01:00
lightningterror 3a9ff840cf GSdx-d3d11: Add support for depth_fmt bit as well as macro for shader. 2018-12-13 01:47:10 +01:00
lightningterror abb1cc5fe7 tfx.fx: Add shaders support for PS_DEPTH_FMT on channel shuffle.
Red, blue and gXbY channels support it.
2018-12-13 01:47:10 +01:00
lightningterror c511ce80d2 GSdx-d3d: Add support for channel shuffle in GSRendererDX.
Split the code from GSRendererDX to GSRendererDX9 and GSRendererDX11. We
ensure d3d9 doesn't blow up with regressions, add required code to
GSRendererDX11 to properly support channel shuffle.

Note the feature is still not yet complete, copy function needs to be
implemented (suggested by Gregory) but it can be done at a later date,
this still fixes a bunch of issues on various games.
2018-12-13 01:47:10 +01:00
lightningterror c7aca64642 GSdx-d3d: Add support for ChannelShuffle in PS constant buffer.
Needed for GXBY channel.
2018-12-13 01:47:10 +01:00
lightningterror c8f53f32fc GSdx-d3d11: Add the shader fetch in GSTextureFX11.
Allows us to fetch the channel from the tfx shader.
2018-12-13 01:47:10 +01:00
lightningterror cd5132d201 GSdx-d3d: Add the channel bit to support channel shuffle. 2018-12-13 01:47:10 +01:00
KrossX d38bd9c950 tfx.fx: Port channel shuffle shaders from OpenGL.
Port RGBA shaders to support channel shuffle on Direct3D11.
2018-12-13 01:47:10 +01:00
lightningterror 46989a0c6c GSdx: Forgot to remove OI_TalesOfLegendia from header file. 2018-12-11 23:19:02 +01:00
orbea aa5c0ebb95 GSdx: Remove OI_TalesOfLegendia HW hack. (#2747)
The hack caused glitches to appear on the right side of the screen, the hack was used as a workaround to properly display game ui elements however it is no longer needed on opengl and d3d11. The ui elements are rendered properly with Depth Conversion.
Shadow issues are solved with at least partial level crc hacks.

See https://github.com/PCSX2/pcsx2/issues/2692 for more detailed information.
2018-12-11 19:36:15 +01:00
Alessandro Vetere fe845aee58 GSTextureCache: Initialize palette texture if needed and not done yet.
Also comment on the reason behind palette texture is always created with size 256x1.
2018-12-11 16:36:14 +01:00
Alessandro Vetere 0a5b1eb75d GSTextureCache: Attach palette if needed (psm.pal > 0) also when reading part of framebuffer as texture. 2018-12-11 16:36:14 +01:00
Alessandro Vetere f605012659 GSTextureCache: Refactor and fix palette management (v2).
1) Refactor palette comparison fast path mechanism to avoid using mutable member of Source,
2) Attach palette to texture as soon as needed,
3) Bugfix attach CLUT copy only when pal > 0.
2018-12-11 16:36:14 +01:00
Alessandro Vetere c183368d72 GSTextureCache: Refactor code to avoid using local shared pointer. 2018-12-11 16:36:14 +01:00
Alessandro Vetere 894ce5b7d6 GSTextureCache: Centralize CLUT comparison logic in PaletteKey equality operator. 2018-12-11 16:36:14 +01:00
Alessandro Vetere c368afd6d2 GSTextureCache: Reformat code and adjust comments. 2018-12-11 16:36:14 +01:00
Alessandro Vetere e1dff69a43 GSTextureCache: Compare also pal value in PaletteKey eq operator. 2018-12-11 16:36:14 +01:00
Alessandro Vetere 774373cc65 GSTextureCache: Add ASSERTs on pal value to ease debugging. 2018-12-11 16:36:14 +01:00
Alessandro Vetere acbe6c24a0 GSRendererOGL/GSTextureCache: Improve ICO hack by using palette cache for depth sampling, removing only point of creation of palette textures outside TC. 2018-12-11 16:36:14 +01:00
lightningterror 202945aa49 GSdx: Add proper Jak1 game to Automatic mipmapping.
I added Jak X: Combat Racing by mistake thinking it's Jak1.
Don't include Jak X, we don't know the status yet.
2018-12-11 13:44:54 +01:00
lightningterror bc524d5e56 Gsdx: Adjust Burnout crc hacks to work on progressive mode.
NTSC only.
I don't know what the "impact screen" crc hack did since the dump didn't
show any difference so that may need to be updated as well.
Note: I only tested the JP version.
2018-12-11 12:59:18 +01:00
lightningterror 80af99bb44 GSdx-ogl: Switch shader numbers main18 and main19.
Allows us to port feedback write (DoMerge function) to D3D11 without
adding dummy shaders for osd.
2018-12-10 18:31:59 +01:00
lightningterror 0704b73c2f GSdx-TCOGL: Adjust depth format cases in Texture Cache GL.
Get rid of duplicate code in switch cases.
2018-12-10 03:11:34 +01:00
lightningterror ecbd8d9f2f GSdx-gui: Enable "Disable Depth Emulation" option for Direct3D11. 2018-12-10 00:17:04 +01:00
Kojin ade00f8a70 GSdx-d3d: Support depth as texture.
- Create depth as typeless format and bind shader resource flag.
- Create depth and shader resource view using proper typed formats.
2018-12-10 00:17:04 +01:00
lightningterror eb3a423f80 GSdx: Enable Texture Cache and RendererHW to support depth on Direct3D11. 2018-12-10 00:17:04 +01:00
lightningterror 4328d099c4 GSdx-d3d: Add support to write in depth buffer.
Add support for dss_write.
Enable writing in depth buffer for dss_write,
when depth conversion is active data will be writen in the depth buffer,
if not then use the old method (don't write).
2018-12-10 00:17:04 +01:00
lightningterror 9a5bf12c0b Gsdx-d3d: Allow Direct3D11 to skip psm.depth on texture sampler.
depth fmt is not yet supported. This ensures there are no regressions,
and we are skipping the draw calls for depth fmt not yet supported.
2018-12-10 00:17:04 +01:00
lightningterror 7928cff354 GSdx-TC11: Add support for depth formats in Direct3D11 Texture Cache.
Add depth formats for Direct3D11 to properly support depth.
2018-12-10 00:17:04 +01:00
KrossX c3a1cc3801 convert.fx port main10-16 shaders from Opengl to Direct3d11.
Adds support to do depth conversion through the shaders.
2018-12-10 00:17:04 +01:00
lightningterror 71ac570f32 GSdx-gui: Correct Large Framebuffer tooltip.
Wording/typos.
2018-12-09 17:04:29 +01:00
lightningterror b6d06f53d6 GSdx-gui: Update Large Framebuffer tooltip.
Include games that don't play well with the option (cause ram/vram
spikes).
2018-12-08 14:48:55 +01:00
lightningterror 4da3f567f4 GSdx: Reduce some code checks for dbz bt hacks. 2018-12-08 13:49:06 +01:00
lightningterror 1fa68071d8 GSdx: Add Nickelodeon: Barnyard to automatic mipmapping. 2018-12-06 12:35:28 +01:00
lightningterror f8ec61a3fc GSdx: Add crc ids for Burnout: Takedown and Revenge.
Jap discs.
2018-12-06 05:31:19 +01:00
lightningterror e4e93bd7f5 GSdx: Remove bloom crc hack for Haunting Ground.
Effect is already handled better in Texture Cache. No need for a
duplicate function.
D3D9 might look a bit worse but nobody cares about D3D9.
2018-12-05 13:21:54 +01:00
lightningterror cf97c304ac GSdx: Revert DBZ BT3 Ghosting/Blur hack.
The game still has a bunch of depth and other issues even on gl and it
doesn't play nice with the blur effect as well. Perhaps the hacks can be
changed to work better but for now enable it on native as well.
2018-12-02 05:28:34 +01:00
lightningterror 8307cfc54d GSdx: Ease crc hack for DBZ BT2.
Fixes ground corrupt textures caused by the hack on the EU version.
US works fine with skip 5 but not 4. Didn't spot any regressions on both
so far. Might need extra testing by users.
2018-12-01 16:06:36 +01:00
lightningterror 8747781bdc GSdx: Add JaX and Jak 3 to automatic mipmapping.
Jak 2 not included. See #2712

Close #2712
2018-12-01 12:53:04 +01:00
lightningterror 9abe96cba4 GSdx-d3d: Update Fast DATE and Alpha Stencil behaviour.
Idea is to allow Alpha Stencil to work with Fast Date.
Let Fast Date run for the supported calls since it's more accurate, let
Alpha Stencil take care of the rest.

This might fix some issues where Alpha Stencil caused some issues making
it a bit more accurate.
2018-11-30 10:44:25 +01:00
lightningterror f687f993cc GSdx-d3d: Replace DATE one calls with a variable. 2018-11-29 20:29:28 +01:00
lightningterror 6c34f6c334 GSdx-d3d: Partial port for DATE one (Fast Date) and Fast Accurate Date.
It fixes a bunch of shadow/transparency issues.
Fast DATE doesn't rely on the gui option and is always on.
Confirmed fixed issues: Persona 3 shadows on d3d11,
Digital Devil Saga Transparency d3d9/11.

Fast accurate date works the same/similar to OpenGL.
Confirmed fixed issues: DBZ BT3 ground shadows, Fifa Street 1 shadows
on all d3d renders as well.

Also this option doesn't cause other transparency issues like the
Alpha Stencil hack.

Note: If Alpha Stencil is enabled Fast Date and Fast Accurate Date will
be disabled.

Note2: Full Accurate Date is not implemented so the code fallbacks to
Fast mode instead.

Commits:
3ab12cef2f
584397a3fd

This will probably be the last feature d3d9 gets before getting purged.
2018-11-29 20:29:28 +01:00
lightningterror b33418f270 GSdx: Ease crc hack for DBZ BT3.
Fixes some ground black texture flickering on some stages on the ntsc
version.
2018-11-29 18:24:08 +01:00
lightningterror f183ca12d9 GSdx-gtk: Move around some options to better match windows gui.
Move Enable User Hacks at the top. Otherwise spacing looks weird.
Large Framebuffer should be next to Allow 8 bit textures.
Move Accurate Date and Accurate Blending at the bottom (similar to windows).
2018-11-28 08:21:13 +01:00
lightningterror 584397a3fd GSdx-ogl: Implement a fast Accurate Date algorithm.
Suggested by Gregory.
Change the checkbox to a drop down list Off, Fast, Full.
Off and Full do the same as before, the Fast option is new. Most of the
time users don't actually need full Accurate Date so why not reduce that
cost and use a fast mode instead, plus it can also be used on a gpu with
a limited driver. Also change the default value to Fast instead of Off.
2018-11-28 08:21:13 +01:00
lightningterror 9899d0d6b7 GSdx: Always enable Unscale Point and Line.
Always enable unscale point and line hack on upscaled resolutions, and
purge the gui option.

It was discussed in the past with Gregoy that it can be enabled without
causing any issues which will be beneficial to getting rid of 1 less
option and fixing a bunch of fmv issues without relying on a gui toggle.
2018-11-26 17:13:45 +01:00
iMineLink 8ff0249213 GSVector4i: Fix compare64 function.
Fix GSVector4i::compare64 function by adjusting the number of iterations
needed to cover the comparison of all the elements of the input arrays,
where the number of bytes to compare is indicated in the size parameter
of the function.
The function is used only in GSdx-TC to compare CLUT arrays.
On one hand this fix closes the recent #2706 and possibly the color
regressions indicated in #2702 (which were both introduced with the new
PaletteMap mechanism, which partially replaced the GSVector4i::update
logic with the bugged GSVector4i::compare64).
On the other hand this might impact long standing wrong texture cache
lookup when palette was involved with 8-bit palette disabled (to be
verified which ones).

Close #2713
Fixes #2706
Fixes #2715
2018-11-26 10:01:10 +01:00
lightningterror 9a10612f0b GSdx: Adjust Frame Buffer Conversion tooltip and TC comment to match recent changes. 2018-11-25 13:35:00 +01:00
lightningterror c8f52b0ba3 GSdx-ogl: Move rgb channel 7 to empty slot 5. 2018-11-25 04:06:04 +01:00
lightningterror 193bda164b GSdx: Make OI_TalesOfLegendia hack active only when depth is not supported/disabled.
Fixes right half screen issue on TalesOfLegendia. UI elements of the
screen are properly emulated with depth emulation on gl (possibly fixed
by
1cc696ab31).
Shadows will be glitchy if crc hack level is below partial level.
I'm not even sure if the hack is useful at all anymore since it
introduces issues now.

Issue #2692
2018-11-24 13:40:36 +01:00
lightningterror 3b96e98eac GSdx: Add crc id for Tenchu Fatal Shadows JP. 2018-11-24 02:34:02 +01:00