Commit Graph

86 Commits

Author SHA1 Message Date
lightningterror d0cb0f59d9 gsdx-d3d11: Extend BLEND_NO_BAR to also hit on clamp 0, it's faster than standard HDR algo.
GOW shows a nice fps improvement (+6 give or take). Spyro too maybe.
2019-07-08 00:40:54 +02:00
lightningterror 2cd9aff867 gsdx-d3d11: Extend sw blending to BLEND_NO_BAR which is also free and doesn't require rt sample nor any barriers.
It helps light rendering in SW Battlefront 2, VP2 also triggers it but needs to be further tested what it does.
2019-07-08 00:40:54 +02:00
lightningterror 40929a4728 gsdx-d3d11: Add rgba channel selection/support to StretchRect. 2019-06-23 23:34:25 +02:00
lightningterror 300f16df61 Gamedb/gsdx-hw: Add gamefix patch and crc id for Harry Potter and the Prisoner of Azkaban EU.
Gamefix patch source:

https://forums.pcsx2.net/Thread-Fixing-unplayable-games?pid=600492#pid600492
2019-06-18 22:34:17 +02:00
lightningterror 9401e52b08 gsdx-d3d11/gui: Move the nvidia hack toggle to Disable Safe Features.
With the sprite hack removed it was no longer possible to toggle this
hack on nvidia gpus, the toggle has been moved to Disable Safe Features.

It some issues caused by the hack in sotc, fatal frame and border offset
issues.
2019-06-18 22:06:35 +02:00
lightningterror a936cd9eb1 gsdx-d3d11: Remove remaining uav (UnorderedAccessView) code, it wasn't used
. Code can be readded in the future if there is a need for it. Advanced
DATE for example.
2019-06-16 20:42:28 +02:00
lightningterror 34bedddd5c gsdx-d3d11: Update nvidia hack handling.
Don't query the api for the adapter description twice.
2019-06-16 20:42:28 +02:00
KrossX 39f509feaa gsdx-hw: Remove no longer needed Sprite hack, replaced by improved atst code already. 2019-06-16 20:42:28 +02:00
KrossX 6a122268cb gsdx-d3d11: Update d3d shader macro handling to a much better algorithm.
Bonus, remove unused options variable
D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS.
2019-06-16 20:42:28 +02:00
lightningterror 3228789808 gsdx-d3d11: Add draw call number to debug logs. 2019-06-13 14:52:03 +02:00
lightningterror 6024359011 gsdx-hw: Purge CastlevaniaCoD, CastlevaniaLoI, NanoBreaker crc hacks.
Shadows emulated correctly with accumulation blend, d3d11 misses sw
blend for extra accuracy (darker shadow).

gsdevice11: Remove unused IsCLR1() variable.
2019-06-13 13:38:24 +02:00
hibye8313 60cf62fea1 GSdx-d3d11: Partial port of EmulateBlending() from OGL renderer to DX11 renderer and ps_blend() from OGL shader to DX11 shader (only accumulation blend). 2019-06-13 13:25:46 +02:00
hibye8313 6bdd4ff186 GSdx-d3d11: Ported SW blending variables from OGL to DX11 PSSelector/BSSelector/pixel shader. 2019-06-13 13:25:46 +02:00
hibye8313 718042e6a6 GSdx: Made a DX11/OGL-independent blend map in GSDevice.cpp. Convert to OGL/DX11 specific constants at run time. 2019-06-13 13:25:46 +02:00
lightningterror 976b77f144 gsdx-hw: Use std max for scaling factor, bonus add jak3 crc id for eu preview/us international release. 2019-06-01 16:46:17 +02:00
lightningterror 877a112193 gsdx-hw: Remove no longer used linear parameter from ComputeFixedTEX0,
add an assert that m_target isn't handled with invalid_tex0 yet due to upscaling.
2019-05-31 13:50:28 +02:00
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
Kojin 2d46bc661d gsdx-d3d11: ensure texture size of at least 1x1 2019-05-11 22:23:12 +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 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 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
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 9c222f8efe gsdx-hw: Some minor comment and code adjustments. 2019-04-04 02:13:57 +02: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
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 e55fcae981 gsdx d3d11: re-normalize coordinate when TEX0 is invalid. 2019-02-20 13:49:57 +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
Gregory Hainaut dbffad2aef gsdx hw: use non virtual Create Texture function.
Just do the format check in FetchSurface. It removes a level of virtual function
and avoid useless code duplication.
2019-02-02 22:54:30 +01:00
lightningterror ee7749452d gsdx-d3d11: Remove unused function OMSetRenderTargets with UnorderedAccessView.
Note ID3D11UnorderedAccessView parameters are also unused but could be
useful for future DATE ports.
2019-01-28 21:01:22 +01:00
lightningterror 4c477d3cd6 gsdx-debug: Disable Alpha Test debug logs on d3d11.
Unfortunately they do more harm than help, slowing things quite a lot
because of the endless log spam when debugging gs dumps.
2019-01-28 20:38:11 +01:00
Kojin af64865c5d gsdx-d3d11: Framebuffer copy improvements
Improved handling of frame buffer copy by accounting for fb read on all slots.

- implement before/after draw functions
- defer setting of resources on the api to just before the draw
- use a bitfield to keep track of set/copied resources
- recycle copies after draw

Fixes: RE4 and Tales of Abyss
2019-01-27 16:40:39 +01:00
lightningterror d4833a4618 gsdx-d3d11: Add final specifier to some voids. 2019-01-26 16:13:07 +01:00
lightningterror 744fa18d95 gsdx-d3d11: Merge/move GSDeviceDX code to GSDevice11.
Update VS and cmake project files, remove GSDeviceDX files.
2019-01-26 16:13:07 +01:00
lightningterror 7b4133ac08 GSdx-d3d11: Add final to Renderer class and DrawPrims, also change some voids to inline. 2019-01-24 20:30:48 +01:00
lightningterror 78f0b65e19 GSdx-d3d11: Merge GSRendererDX11 and GSRendererDX together.
Update VS and cmake project files to match new changes.
2019-01-24 20:30:48 +01:00
lightningterror 2aadf0be89 GSdx: Adjust Scaling Factor.
Use value of 1 when upscale multiplier is 0 for ScalingFactor, this is
to avoid doing math with 0 in shader.

It helps custom res be less broken. Still not recommended to use custom
res ofc.
2019-01-22 23:25:01 +01:00
Kojin 468b9ded46 gsdx-d3d11: Update texture copy method to handle depth
- Rename CopyRenderTarget to CloneTexture
- Allow copy of depth target

Also fix a small oversight from the removal of MSAA.
2019-01-22 06:52:24 +01:00
Kojin 57824261c6 gsdx-d3d11: Cache rt depth stencil on m_state
Cache the depth stencil in addition to color rt.
This will allow us to check for depth stencil equality on slot 4.
2019-01-22 06:52:24 +01:00
lightningterror b4cb805a91 gsdx-tc: Remove CanConvertDepth virtual bool and use m_can_convert_depth for depth toggling. 2019-01-18 14:53:06 +01:00
Kojin e429677a07 gsdx-hw: Completely remove MSAA from renderer code. 2019-01-15 19:13:14 +01:00
lightningterror e05b5d2420 GSdx-d3d: Move channel and texture shuffle in GSRendererDX.
Preparations for file merge.
2019-01-14 02:30:25 +01:00
lightningterror 8a57d7f470 GSdx-d3d11: Remove colclip and negative blend algo.
Code was old and inefficient. HDR colclip will do a better job.
2019-01-12 09:53:51 +01:00
lightningterror f2f66c02d3 GSdx: Add option to Disable Safe Features.
Idea is to disable multiple features in 1 option to avoid gui clutter.

Unscale Point and Line:
This partially reverts PR #2710 restoring Unscale Point and Line but as a disable option.
It can help Xenosaga games.

GS Memory clearning:
This disables GS memory clearing to be done on the CPU, by default both gpu and cpu do memory clearing
which is more accurate.
It can help Kingdom Hearts games.
2019-01-09 15:44:41 +01:00
lightningterror 54f8aca7d5 GSdx-d3d11: Re enable shader code logging.
Log was disabled in #2760
2019-01-04 01:00:10 +01:00