Commit Graph

2262 Commits

Author SHA1 Message Date
Gregory Hainaut b62859ffa2 gsdx ogl: only enable the alternate alpha test in FB_ONLY
RGB_ONLY requires to handle the alpha channel in the alpha test
2016-08-15 11:25:19 +02:00
Gregory Hainaut 90707f8d4e gsdx: avoid aliasing issue
Extend GSVector to support float move

Initial code likely used integer move for performance reason. However due to
the nan correction, register is now in float domain.
2016-08-14 20:48:34 +02:00
Gregory Hainaut 447e0d0336 Merge pull request #1514 from PCSX2/gsdx-nouveau-driver
Gsdx alpha test improvement
2016-08-14 20:29:09 +02:00
Gregory Hainaut 15db7eeb81 gsdx: use correct format in printf
u => unsigned
d => signed

zu => size_t
2016-08-13 12:48:35 +02:00
Gregory Hainaut 0a1454ff6c gsdx: use prefix increment operator for non-primitive type
I think compiler is clever enough to optimize the code but it won't hurt
and it reduces the number of cpp check warning.
2016-08-12 23:11:26 +02:00
Gregory Hainaut dc2864ad7a gsdx hw: avoid a null deferenced false-positive in coverity
It is a false positive because it supposes that PRIM->TME is both true and false.

It is the first Schrodinger's variable ;)
2016-08-12 23:02:06 +02:00
Gregory Hainaut 1a09712f89 gsdx: init m_custom_width/height to a default value
Avoid useless warning on coverity
2016-08-12 22:48:20 +02:00
Gregory Hainaut c41cf6c444 gsdx: init variable in constructor
CID 168626 (#1 of 1): Uninitialized scalar field
uninit_member: Non-static class member m_end_block is not initialized in this constructor nor in any functions that it calls.
2016-08-12 22:45:17 +02:00
Gregory Hainaut 41afd85a5d gsdx sw: fix GCC warning enumeral and non-enumeral type in conditional expression 2016-08-12 19:30:14 +02:00
Gregory Hainaut 88b7470c07 gsdx: use const qualifier to avoid gcc (false positive) warning
variable  might be clobbered by ‘longjmp’ or ‘vfork’

Only remains warning for 2 variables: success & image
2016-08-12 19:30:14 +02:00
Gregory Hainaut 19e992869a Merge pull request #1512 from PCSX2/gsdx-dynamic-thread-height
gsdx sw: add extrathreads_height to control the quantity of pixels pr…
2016-08-12 15:52:13 +02:00
Gregory Hainaut 332ef5892b gsdx: replace hardcoded constant with nice enum 2016-08-11 22:30:34 +02:00
Gregory Hainaut 8b94320524 gsdx ogl: implement another algo to handle alpha test
Fix rendering issue on letters on Kengo/burnout 3/...

Default algo will execute the alpha test in 2 passes. However due to blending
you can't handle accurately the color.

Fortunately for us, the rendering uses an always pass depth test so you
can execute first all the color rendering (which doesn't depends on the alpha test)
And then the depth part which depends on the alpha test.
2016-08-11 21:15:17 +02:00
Gregory Hainaut 866173a481 gsdx ogl: move zbuffer emulation code into a dedicated function
* Code was factorized a bit with the help of max_z
* Add an extra optimization if test is ZTST_GEQUAL and min z value is
the biggest value. Z test will always be pass.
Note: due to float rounding (23 bits mantissa vs 24 bits depth) the test
is done against 0xFF_FFFE and not 0xFF_FFFF. It is wrong but GPU will
also use float so impact will be null.
2016-08-11 21:14:58 +02:00
Gregory Hainaut 1fa9e3fc93 gsdx ogl: align shader self test to atst previous change 2016-08-10 11:30:13 +02:00
Gregory Hainaut 74822d6ba3 gsdx ogl: rework atst handling
* Move the rounding operation in the constant buffer
* Merge less with less equal. And merge greater with greater equal

Need test
2016-08-10 11:30:11 +02:00
Gregory Hainaut 9a188a87c2 gsdx ogl: move ATST emulation in a dedicated function
Future commit will try to reduce the number of Alpha Test possibilities
2016-08-09 20:53:44 +02:00
Gregory Hainaut fb2182dd9b gsdx small nitpick 2016-08-09 15:15:30 +02:00
Gregory Hainaut 0dcce91a6e Merge pull request #1504 from ssakash/RemoveFunction
GSDX: Remove GetDeviceSize()
2016-08-08 16:15:07 +02:00
Akash bc24e90070 GSDX: Remove GetDeviceSize()
It's not used anywhere and it doesn't seem needed.
2016-08-07 12:43:03 +05:30
Jonathan Li af60501fb6 windows: Remove unused solution files and property sheets
The solution files are unused and for ancient Visual Studio versions -
GSDumpGUI has its own solution file, and bin2cpp is included in the main
solution file.

The property sheets have either fallen out of use or were never used in
the first place.
2016-08-04 23:09:08 +01:00
Jonathan Li 869f4d1898 gsdx: Only set ini path in GSdxApp::Init() if it's empty
Fixes a regression introduced by 46ba9aa117,
where the Linux GS replayer would always use the options in inis/GSdx.ini
(or use the default options if that doesn't exist) to replay the dump,
instead of using the GSdx.ini from the specified ini folder.
2016-08-04 00:53:50 +01:00
Gregory Hainaut e9e1b33884 gsdx: log a nice string instead of the hex format of PSM 2016-08-03 18:07:54 +02:00
Gregory Hainaut 41bede60eb gsdx replayer: fix broken init in replayer
"regression" from previous defered init
2016-08-03 11:57:56 +02:00
Gregory Hainaut 27f313ee16 gsdx hw: limit OI_GsMemClear to large clear
Help to reduce the speed impact
2016-08-03 11:23:23 +02:00
Jonathan Li f978f9a07d Merge pull request #1477 from turtleli/gsdx-defer-init
gsdx: Avoid illegal instruction crash on older CPUs
2016-08-02 23:00:19 +01:00
Gregory Hainaut 16affc9ef4 gsdx tc: potentially fix a regression
Update done on f712c5c6d0

Previous code use the size of the draw to compute latest block. I
don't know why I use .x/.y which are the origin offset so the start of the block.
2016-08-02 15:35:28 +02:00
Jonathan Li 44f90efb93 gsdx:psx: Fix illegal instruction crash on old CPUs
Check the instruction set first in GPUinit, GPUconfigure and GPUtext
to prevent unsupported vector instructions from being executed.

Move the vector initialisation in GPUinit to a separate function - it
avoids a vzeroupper instruction.
2016-08-01 19:38:23 +01:00
Gregory Hainaut 92ae8a5be7 gsdx sw: print current draw call of GetSizeFixedTEX0
To easily detect compare with hardware renderer
2016-07-31 13:19:38 +02:00
Gregory Hainaut 1ea83ba3a7 gsdx debug: log current area of the draw
This way it is easier to see which part of the texture is read, and which part
of the framebuffer is updated
2016-07-31 13:19:38 +02:00
Adam Diffin 6376e8d6e7 Just a simple grammar fix. (#1489) 2016-07-31 01:23:35 +01:00
Gregory Hainaut 140fe74ca2 gsdx ogl: fix bad blending regression
(when accurate blending is disabled)

Regression was introduced in 29c97a9bf2 (11th June)
2016-07-30 09:59:53 +02:00
Gregory Hainaut 242ac26299 Merge pull request #1485 from ssakash/HPO_Custom
GSDX-TextureCache: Port Half pixel offset hack for custom resolutions
2016-07-29 15:07:02 +02:00
FlatOutPS2 02b0451d3c GSdx: Star Ocean 3 depth issue fix
Fixes issue #1475
2016-07-29 12:13:26 +02:00
FlatOutPS2 91e07727e3 GSdx Add missing CRC hacks 2016-07-29 12:12:52 +02:00
Akash dbad57b8e8 GSDX: Silence an implicit conversion warning
OMSetBlendState() doesn't accept passing a float value as it's argument
(AKA actual parameter).
2016-07-28 18:58:06 +05:30
Akash 47f69f694a GSDX-TextureCache: Port Half pixel offset hack for custom resolutions 2016-07-28 18:45:23 +05:30
Gregory Hainaut 620876e0e7 gsdx: fix compilation error with ICC
just require the -restrict compilation flag
2016-07-28 11:01:28 +02:00
Jonathan Li a9f9c1406c Merge pull request #1474 from turtleli/windows-64-bit-fixes
Windows 64-bit compile fixes
2016-07-28 00:19:04 +01:00
Jonathan Li 7e30d16797 gsdx: Use char array instead of string for name
"static string str;" causes a SIGILL signal on a "Nehalem" (SSE4.2)
QEMU VM when compiled with GCC 6.1.1.
2016-07-27 23:34:16 +01:00
Jonathan Li 46ba9aa117 gsdx: Defer GSdxApp initialisation on Linux only
vector push_back causes a SIGILL signal on a Nehalem (SSE4.2) QEMU VM
when compiled with GCC 6.1.1.

However, an empty constructor causes illegal instruction exceptions to be
generated on a Windows VM.

So here's an inbetween that looks stupid but works on what I've tested.
2016-07-27 23:34:15 +01:00
Jonathan Li 9f53987e3b gsdx: Use map for GSCRC::m_map
Visual Studio 2015 initialises unordered_map using vector instructions,
which can cause PCSX2 to crash if the instructions aren't supported.
2016-07-27 23:34:14 +01:00
Jonathan Li e5ea4cc5d4 gsdx: Defer vector initialisation to GS/GPUinit
It can cause PCSX2 to crash if the instructions aren't supported.
2016-07-27 23:34:14 +01:00
Jonathan Li d726d4d4aa gsdx: Add AVX2 to instruction set test
Also add a newline to the error message and report AVX/AVX2 instead of
SSE5.00 and SSE5.01.
2016-07-27 23:34:12 +01:00
Gregory Hainaut 7fa55c39f1 Merge pull request #1479 from ssakash/custom_fixes
GSDX-TextureCache: Add proper rounding when unscaling texture size
2016-07-27 22:31:21 +02:00
Gregory Hainaut d6383e6c21 Merge pull request #1472 from PCSX2/gsdx-gta-depth-issue-1457
Gsdx gta depth issue 1457
2016-07-26 18:40:53 +02:00
Akash d3ebd4b318 GSDX-TextureCache: Add proper rounding when unscaling texture size
Fixes flickering issues on Dragon Ball Z Budokai Tenkaichi FMV's on custom resolution, might also help prevent some crashes on custom resolution.
2016-07-26 18:28:07 +05:30
ramapcsx2 c592ccb3e5 Merge pull request #1435 from ssakash/Custom_TextureCache
GSDX: Improve scaling of custom resolution
2016-07-26 14:07:19 +02:00
Jonathan Li 5719bddbb5 gsdx:windows: Change m_colorspace to INT_PTR
Fixes a 64-bit compile error.
2016-07-23 02:19:28 +01:00
Gregory Hainaut aea75f51bd gsdx tc: partial support of pseudo depth for Dx
Fix #1457 (GTA)

The game uses a depth format for a pure color buffer (cokes do ravage
in gaming industry)

However I'm really afraid that it migth break another effect in other games.
2016-07-22 20:38:46 +02:00