Commit Graph

3310 Commits

Author SHA1 Message Date
lightningterror ed8592b30b gsdx-d3d11: Don't run Alpha Stencil on DATE with texture shuffle.
It breaks DATE with tex shuffle (Haunting Ground 2, Superman shadow of
Apokolips, possibly others too).
2019-05-24 01:17:33 +02:00
lightningterror 3289dc1cc7 gsdx-gui: update alpha stencil, crc hack level tooltips. 2019-05-23 18:11:26 +02:00
lightningterror 87808fee03 gsdx-hw: Purge GSC_GTASanAndreas crc hacks.
Auto flush allows us to render the effects properly.
Small ghosting may not be an actual issues as it's also present on sw
renderer.
2019-05-17 03:35:17 +02:00
Shanoah Alkire 5d4ae31ba1 Add a few default functions in explicitly. (-Wdeprecated-copy) 2019-05-11 19:18:18 -07:00
Shanoah Alkire 284880f768 GSdx: Variables should be initialized in the order in which they are declared. (-Wreorder) 2019-05-11 19:00:29 -07:00
Kojin 2d46bc661d gsdx-d3d11: ensure texture size of at least 1x1 2019-05-11 22:23:12 +02:00
lightningterror 9a5225dfdf gsdx-hw: Purge GSC_SimpsonsGame crc hacks.
Upscaling issue can be resolved with Half Pixel Offset Normal.
2019-05-05 23:37:18 +02:00
lightningterror be46832c7b gsdx-hw/gamedb: Add Star Wars - The Force Unleashed to gamedb and crc list. 2019-05-03 00:47:45 +02:00
lightningterror 637f777ea9 gsdx-hw: Update OI_StarWarsForceUnleashed hack.
Remove hack that was replaced by OI_GsMemClear and OI_DoubleHalfClear.
2019-05-02 22:53:44 +02:00
lightningterror eb0d22626f gsdx-hw: Purge GSC_StarWarsForceUnleashed crc hacks.
Shadows are rendered correctly with basic blending on opengl, high on
d3d11.
2019-05-02 21:07:46 +02:00
Kojin de0c4a7fc7 gsdx-hw: Check for null texture before commit in hacks. (#2951)
Issue ##2943
2019-05-02 19:57:00 +02:00
lightningterror 5a69a2f689 gsdx-sw: Add an option to toggle auto flush on sw renderer.
Windows + Linux.
2019-05-02 15:35:55 +02:00
Gregory Hainaut ead3d21bdb gsdx ogl: commit texture in copy function
So far not yet used but safer this way
2019-04-26 12:40:04 +02:00
Gregory Hainaut 568b96b885 gsdx ogl: only always uncommit texture in debug build
It is good for memory but bad for the speed. There is likely a better trade-off
but it should be enough for now
2019-04-26 12:40:04 +02:00
Gregory Hainaut 70c3c1a48f gsdx ogl: always commit a sparse texture when force_texture_clear is enabled
The goal is to ensure the behavior of the option. VRAM usage isn't important
as option is mainly intented for debug purpose.
2019-04-26 12:40:04 +02:00
lightningterror e77aac0bf1 gsdx-ogl: Do some integer casts for destination texture commit to StretchRect.
Fixes warning.
2019-04-26 12:40:04 +02:00
Gregory Hainaut bdcf83ca45 gsdx ogl: sparse texture : only commit new area
Avoid potential driver overhead
2019-04-26 12:40:04 +02:00
Gregory Hainaut bb306dfe90 gsdx hw: commit texture before a clear in OI hack
Note I didn't bother to compute the draw region for single game hack.
Gain would be 0 if game doesn't suffer of memory issue in the first place
2019-04-26 12:40:04 +02:00
Kojin 116a5d822c gsdx-ogl: update Save() to use committed size of texture 2019-04-26 12:40:04 +02:00
Kojin 9618283217 gsdx-ogl: Add detection of Sparse Depth in isDss() 2019-04-26 12:40:04 +02:00
Kojin 55e95cc552 gsdx-ogl: add destination texture commit to StretchRect 2019-04-26 12:40:04 +02:00
Kojin e9989a5966 gsdx: enable sparse render target in TC 2019-04-26 12:40:04 +02:00
Kojin a1cdeb2fd1 gsdx: add uncommit in recycle 2019-04-26 12:40:04 +02:00
Kojin 4e675ef6e1 gsdx-ogl: add texture commit ogl renderer 2019-04-26 12:40:04 +02:00
Gregory Hainaut ba782e90c8 gsdx ogl: enable sparse feature on GSdevice interface
Note: remain
* To really use sparse texture
* To debug it ^^
2019-04-26 12:40:04 +02:00
Gregory Hainaut 16d5f477ff gsdx ogl: implement CommitPages 2019-04-26 12:40:04 +02:00
Gregory Hainaut e8b2d036ee gsdx ogl: handle creation of sparse texture 2019-04-26 12:40:04 +02:00
Gregory Hainaut 9e7069f374 gsdx hw: add API to manage sparse texture allocation
DX/GL should implement "CommitPages" to really commit memory

Note: CommitPages should also update the m_committed_size member
2019-04-26 12:40:04 +02:00
Gregory Hainaut 643ed528c2 gsdx hw: allow to create sparse texture at device level
Obviously texture allocation should be updated too
2019-04-26 12:40:04 +02:00
lightningterror 3408d1a873 gsdx-d3d11: Move colclip code to blending function.
Also disable a log that was accidentally enabled/pushed.
2019-04-25 16:48:07 +02:00
lightningterror a0c6c1cb9f gsdx-hw: Forgot to remove a crc region check for dbzbt2-3, no longer needed. 2019-04-25 16:34:28 +02:00
lightningterror 8eab618502 gsdx-hw: Purge crc hacks that had their half screen issues resolved (Texture shuffle case).
DBZBT2, DBZBT3, MetalGearSolid3.
2019-04-25 15:08:51 +02:00
Kojin 34ac15f7eb GSdx-hw: Add secret ini option to disable TS half bottom detection 2019-04-25 13:42:47 +02:00
Kojin 7eb0b0ac65 GSdx-hw: Add automatic detection of half-bottom in TS
Typical shuffle case is 1/2 height so other half is undesired

In dbz we split the depth buffer.
- Sample first half, write to `0x0`.
- Sample second half, write to `0x800`
- Finally, sample `0x0` though `0xffc`

Crash Twinsanity is a similar case.
2019-04-25 13:42:47 +02:00
Kojin 97612edd58 GSdx-hw: Move src to protected member 2019-04-25 13:42:47 +02:00
Kojin 6af2f7ef46 GSdx-hwtc: Propagate valid area from dst to source 2019-04-25 13:42:47 +02:00
Kojin acf771edd8 GSdx-hw: Store bounding rectangle in protected member 2019-04-25 13:42:47 +02:00
lightningterror c3f36ad430 gsdx-gui: Separate opengl and direct3d blending options.
A short summary how d3d option behaves compared to gl.

None d3d-> behaves the same
Basic d3d-> even less than 1/3 of Basic opengl.
Medium d3d -> less than 1/3 of Basic opengl.
High d3d -> 1/3 of Basic opengl.

Note: Medium and High options are mostly intended for debug use.
2019-04-23 15:24:04 +02:00
lightningterror d4b62444d1 gsdx-d3d11: Adjust fbmask code on d3d11.
Add the remaining code and separate it in levels because dx sux.

Basic blending mode -> doesn't enable fbmask on texture shuffle and
triangle primitives.

Medium -> doesn't enable fbmask on triangle primitives.

High mode- >  fully enables fbmask, note it's still not on par with
opengl because we miss sw blending for some games.

Also keep in mind that High Blending option on d3d11 is like 1/3 of
Basic Blending option on GL.
2019-04-23 15:24:04 +02:00
lightningterror 641df126c4 gsdx-d3d11: Don't enable fbmask on triangle primitives.
It is quite slow due to fb copy on d3d, add potential notes for future
improvements so I don't forget what I wanted to do.
2019-04-22 05:07:42 +02:00
lightningterror e72aa23436 gsdx-gui: Purge the aout (Alpha hack) from the gui, will be useless with fbmask emulation, enable blending option on d3d11.
Blending option allows us to toggle fbmask on or off with at least basic
level just like on gl.
2019-04-22 05:07:42 +02:00
lightningterror de5e9a85bb gsdx-d3d11: Partial port of frame buffer masking from opengl.
It works on games such as Fifa Street 1 and 2 (character and stage
rendering), mission impossible operation surma (shadow rendering).
It needs at least Basic level of blending enabled on d3d11.
2019-04-22 05:07:42 +02:00
lightningterror 9d60d6acfd gsdx-d3d11: Remove old aout code.
Will be replaced with fbmask code in next commits.
2019-04-22 05:07:42 +02:00
Tyler Wilding 08d923ca6f recording: Append copyright headers
Squashed commits:

[47be08613] recording: Forgot to refactor the usage of std::size
2019-04-21 00:45:44 +02:00
Tyler Wilding 64104ca9fd gui:recording: Revert addition of Screenshot As, will contribute as separate PR
Along with changing the .bmp file naming scheme.
2019-04-21 00:45:44 +02:00
Tyler Wilding 413ba4b430 GSdx: implemented saving a snapshot to a dialog provided file path 2019-04-21 00:45:44 +02:00
Avindra Goolcharan 4d88a57f27 gsdx-gui: Fixes typos on the tooltip for disabling safe features. (#2931) 2019-04-20 04:52:28 +02:00
lightningterror ac1bc9d6fc gsdx-hw: Move GSC_RadiataStories, GSC_StarOcean3, GSC_ValkyrieProfile2 crc hacks to D3D level.
Follow up from the previous commit which is bypassing the texture cache
when the frame buffer is sampled.
Crc hacks are no longer needed on opengl.

Note: it requires at least Basic blending support.
2019-04-17 03:48:30 +02:00
Gregory Hainaut f406051ed9 gsdx ogl: Bypass the texture cache when the frame buffer will be sampled.
Proof of concept. It should provide a huge speedup when accurate
blending is enabled for tri-ace / Jak / R&C (shadow rendering).

See #2894
Need PR#2892

v2: Add const + comment to explain that code isn't ideal.
2019-04-17 03:48:30 +02:00
lightningterror 52da124a2b gsdx-ogl: Check if primitives are triangles instead of overlapping.
Single triangle draw can now hit the tex_is_fb path.
Primitive Overlap will return no overlap  for single primitive (triangle).
Ratchet and Clank, Jak, tri-Ace games.

It should improve shadow rendering.

Idea by Gregory.
2019-04-10 12:33:31 +02:00
Kojin 73e3072715 GSdx-d3d11: Enable break on D3D message
Enable automatic breaking on d3d11 messages:
- D3D11_MESSAGE_SEVERITY_CORRUPTION
- D3D11_MESSAGE_SEVERITY_ERROR
- D3D11_MESSAGE_SEVERITY_WARNING
- D3D11_MESSAGE_SEVERITY_INFO

Hidden option dx_break_on_severity bitfield

Debug build only.
2019-04-08 00:45:50 +02:00
lightningterror 508a8b477e gsdx-hw: Disable automatic mipmapping on Jak games for now.
It crashes the emulator so until the issue is resolved properly comment
out/disable automatic mipmapping for jak games.

Issue #2916
2019-04-07 19:50:46 +02:00
lightningterror 9c222f8efe gsdx-hw: Some minor comment and code adjustments. 2019-04-04 02:13:57 +02:00
lightningterror e73607395b gsdx:-debug: Update previous GSDrawingContext commit to show log only on gl sw renderer.
Follow up from:

46e63c1f17
2019-03-26 14:40:17 +01:00
Gregory Hainaut a16fe6f016 gsdx TC: remove dead code
src->m_texture is always NULL, set in Source constructor

Potentially it was a leftover of msaa or the commented code to handle mutable FBW
2019-03-26 14:22:34 +01:00
Gregory Hainaut 374374fdf1 gsdx ogl: disable sparse in extenstion detection
* Allow to keep automatic as default value in the option
* You need to force enable sparse in the option to enable sparse
2019-03-26 14:22:23 +01:00
lightningterror 535b0d4aac gsdx-ogl: Disable sparse depth on amd.
* Bad driver as usual.

* Driver reports a compatible sparse format for depth texture but it isn't attachable to a frame buffer.
2019-03-26 14:22:16 +01:00
lightningterror f5bf1f655d gsdx-hw: Add another Sly 2 prototype/beta disc to crc list. 2019-03-17 20:47:40 +01:00
lightningterror a30f642860 gsdx-hw: Purge GSC_NarutimateAccel, GSC_Naruto crc hacks.
Naruto Shippuden - Narutimate Accel 3,
Naruto - Narutimate Hero 3.

Depth effects (shadows) rendered correctly.
2019-03-17 05:34:13 +01:00
lightningterror 0d5ae808ef gsdx-gui: Fix overlap issue with Rendering threads text.
Issue was visible only on gsdumpgui.
2019-03-17 05:04:08 +01:00
lightningterror c8d4d5528e gsdx-ocl: Fix some compile warnings. 2019-03-12 02:36:49 +01:00
lightningterror e9e7580582 gsdx-gui: Properly grey out opencl device text when opencl is enabled, also some minor cleanup. 2019-03-12 01:49:48 +01:00
lightningterror 7354c1fa0d gsdx-hw: Update a few crc issue categories for several games. 2019-03-08 19:33:28 +01:00
lightningterror 889001c026 gsdx-hw: Move GSC_Okami to Aggressive level.
Upscaling issues, hack needs to be updated because it removes too many
effects. Maybe HPO or Wild Arms offset are fine, needs further testing.
2019-03-08 19:23:03 +01:00
lightningterror 910ef1db41 Gsdx hw: Purge GSC_TalesOfAbyss crc hacks.
Depth and channel shuffle rendered correctly on all renderers.
Also add some missing crc ids for Tales of Abyss.

PS: I'm ninjaing 3000 builds on the buildbot 😄
2019-03-08 16:13:39 +01:00
lightningterror 47c255be2c gsdx-gui: Adjust advanced settings and hacks gui.
Allow to open Advanced settings and hacks window even when hw hacks are
off, this should allow OpenGL advanced settings to be configured even
when hw hacks are off in the gui since the options are configurable
wihtout depending on hw hacks checkbox.

Hw hacks will be greyed out when the checkbox button is not enabled.

New behavior will only be present on opengl hw gui. Direct3d11 will remain the same.
2019-03-06 18:11:26 +01:00
lightningterror 8219bcd1b4 gsdx-hw: Move GSC_YakuzaGames to partial level.
Don't enable hack on native res if crc is below aggressive. Upscaling
issues.

Bonus, revert recent barrier changes on gl date code.
2019-03-05 12:39:07 +01:00
lightningterror e36976bf86 gsdx-d3d11: Minor adjustments to DATE code.
Run fast accurate date instead of alpha stencil when accurate date is
enabled on supported calls, also update some logs and comments.
2019-03-04 20:35:09 +01:00
lightningterror e48ce1bc69 gsdx-ogl: Minor adjustments to DATE code.
Don't set DATE true when Accurate Date is off, DATE is true anyway so
no need to set it again.

Don't call full barrier for DATE 45 at the date selection, do it
at the shader call check. It's the same, plus we avoid extra checks.
2019-03-04 19:39:58 +01:00
lightningterror 46e63c1f17 gsdx-debug: Use gl GL_INS print macro for a log instead of relying on debug build.
In GSDrawingContext.

Also some minor format cleanup to match the rest of the code.
2019-03-04 19:39:47 +01:00
lightningterror 5c23a9fac0 gsdx-gui: Update blending option.
Change the name to Accurate Blending so it fits more with Date option
next to it, get rid of low/high end recommended nametag for the list and
just use Recommended for Basic level, lot of users seem to be using high
for "high end pc" which they shouldn't.
2019-03-03 00:47:40 +01:00
lightningterror 425059d882 gsdx: Forgot to move the crc state for mgs3 and ace combat 4.
crc hacks are aggressive only. Fixes regressions mentioned in
https://forums.pcsx2.net/Thread-Metal-Gear-Solid-3-OpenGL-Issue-with-Latest-Builds
2019-03-01 08:37:04 +01:00
lightningterror 8a9abd8a1b gsdx: Purge depth crc hack for GSC_RadiataStories.
Effects rendered correctly, blur/ghosting upscaling issues can be
resolved with HPO special.
2019-02-25 11:35:27 +01:00
lightningterror 79a38858d1 gsdx: Purge GSC_CrashNburn crc hacks.
Depth, texture shuffle rendered correctly.
@MrCK1 did the tests. PAL needs to be tested as well.
2019-02-24 22:12:27 +01:00
lightningterror 8e8598412d gsdx: Purge all crc hacks for GSC_OnePieceGrandAdventure and GSC_OnePieceGrandBattle.
Texture shuffle and hdr colclip.
Effects rendered correctly.
2019-02-23 06:52:40 +01:00
lightningterror 930f07df4a gsdx: Purge depth crc hack for Haunting Ground.
Effects rendered correctly on all renderers.
2019-02-22 17:18:58 +01:00
Gregory Hainaut e56f75fe9a gsdx hw:move vertices fixup for texture shuffle in RendererHw
Bonus: fix m_vt value
2019-02-22 16:57:59 +01:00
lightningterror 80f8de5e0b Revert "gsdx-gui: Use a separate drop down list for sparse texture."
This reverts commit 61c4df0375.

It was a bad idea from the start.
2019-02-20 17:42:49 +01:00
lightningterror 61c4df0375 gsdx-gui: Use a separate drop down list for sparse texture.
It's temporary until sparse texture is fully implemented.
Force Disabled should be Default option.
2019-02-20 16:56:51 +01:00
lightningterror e55fcae981 gsdx d3d11: re-normalize coordinate when TEX0 is invalid. 2019-02-20 13:49:57 +01:00
Gregory Hainaut 29aef04fbf gsdx ogl: re-normalize coordinate when TEX0 is invalid
Fix #258
Fix #695
2019-02-20 13:49:57 +01:00
Gregory Hainaut 12dcb701c7 gsdx: add a function to fix the TEX0 register value for HW renderer
Based on the SW renderer
2019-02-20 13:49:57 +01:00
Gregory Hainaut 6df9eb8dab gsdx: Allow to save and restore drawing context
Purpose is to allow edition of the context for current draw call
2019-02-20 13:49:57 +01:00
lightningterror 9c60541f3c gsdx-gui: Adjust psx compat gui.
Fix up options to properly disable on Null render.
Clean up some resource defines.
2019-02-20 13:38:49 +01:00
lightningterror c6f57c0bdb gsdx: Save hotkey toggle to ini config.
This will allow to save hotkey option toggling to the ini which
should fix gui updating with hotkey toggles.

Note: Render hw/sw switch doesn't work.

Also update some options that didn't have hotkey nametag.
2019-02-20 11:07:02 +01:00
lightningterror 8cb6d255ca fxaa.fx: Purge d3d9 shader code.
Looks like I forgot this one.
2019-02-19 15:36:15 +01:00
lightningterror cc2fda6d6d gsdx-gui: Add hotkey nametags to some options that have hotkey support already. 2019-02-18 05:11:43 +01:00
Gregory Hainaut 31d95448ed gsdx device: use same target for fxaa/shaderboost/shaderfx
It avoid to waste VRAM memory
2019-02-13 19:52:43 +01:00
Gregory Hainaut 45dfb0dcdb gsdx device: use generic resize texture function
V2: add missing size for merge and interlace
2019-02-13 19:52:43 +01:00
lightningterror a130fcaa4e gsdx-gui: Adjust some button positioning and window width.
"Symmetry"
2019-02-13 13:07:33 +01:00
lightningterror 119ab90657 gsdx: Reuse same selected renderer image/banner for ps1 emu compatibility as ps2.
There's no need to have duplicate images that basically do the same
thing. Update the gui to reflect latest changes and use the same images
on both. It will reduce plugin size.
Remove old images and update VS project files.
2019-02-13 12:30:00 +01:00
lightningterror 5a4541f2f4 gsdx: Adjust/cleanup ini options.
Opencl device, Alpha, Alpha stencil are windows only options so no need
to clutter ini on linux with useless stuff.
2019-02-13 11:06:02 +01:00
lightningterror 12b622c9c1 gsdx: Cleanup/update Wild Arms offset hack.
Don't use integer for the variable, option has only on and off states.
Use member variable names and adjust some checks.
2019-02-13 10:28:07 +01:00
lightningterror 19586fdd7f gsdx: Move GSTexturecache files from Common to HW renderer. 2019-02-11 18:18:02 +01:00
lightningterror ca002c56e5 GSdx: Adjust Burnout crc hacks to work on multiplayer mode as well.
Yellow stripes crc hack.
Note: Only Takedown was tested but other games should work as well.
2019-02-09 21:42:38 +01:00
lightningterror 7406e13028 gsdx-egl: Also do the same for egl pointer logs. 2019-02-09 11:16:51 +01:00
lightningterror cc6ac657f8 gsdx-ogl: Enable function pointer support logs only when "debug_opengl" is enabled in the ini.
They are mostly for debugging driver issues so regular users don't
actually need to see them most of the time.
2019-02-09 11:10:00 +01:00
lightningterror dabc99f466 gsdx-ogl: Small colclip improvements.
1. Allow hrd colclip to also run on the unsupported
cases which should be pretty rare.

2. Remove colclip from high sw blending.

3. Disable the hdr colclip shader which may not be
actually required to run.

Idea by Gregory
2019-02-08 14:53:15 +01:00
lightningterror b5f0959e6d GSdx-gui: Set ini option to 0 for sparse texture since the feature is not yet implemented,
also add tooltip for the gui option.
2019-02-07 18:38:40 +01:00
lightningterror a9e622357a gsdx-ogl: Fix override detection for extensions. 2019-02-07 18:38:40 +01:00