Jonathan Li
a34942c882
cdvdgigaherz: Only update cache if the read succeeds
2016-11-22 21:26:41 +01:00
Jonathan Li
bb25ce1c6a
cdvdgigaherz: Add cache entry check function
...
Useful when you don't actually want the cached data.
2016-11-22 21:26:41 +01:00
Jonathan Li
23f48e07ed
cdvdgigaherz: Change signs
...
Avoid some unnecessary casting.
2016-11-22 21:26:41 +01:00
Jonathan Li
008fea5d89
common|cdvdgigaherz: Fix API sign mismatch
...
The typedef and function declaration don't quite match.
2016-11-22 21:26:41 +01:00
Gregory Hainaut
0d275868a5
gsdx x64: quick fix for windows
...
Until we got a full implementation
2016-11-21 18:18:09 +01:00
Gregory Hainaut
37379d5d1d
gsdx sw x64: shuffle memory allocation
...
tex address is a3
vm address is a1
Could help to avoid REX prefix
Reduce prologue/epilogue register copy
Byte code size 41893 => 38912 (on my testcase)
2016-11-20 20:19:13 +01:00
Gregory Hainaut
b76305a0d2
gsdx sw x64: keep the copy of top in the stack for dthe
...
An extra stack access by pixel won't impact perf (only 16 bits game with dithering)
Allow to save 2 registers (a1/a3)
2016-11-20 20:19:13 +01:00
Gregory Hainaut
994274623b
gsdx sw x64: use rip addressing on draw scan line
...
byte code 41997 => 41893
However it will allow to save 2 registers as future optimization
2016-11-20 20:19:12 +01:00
Gregory Hainaut
7c06e87d59
gsdx sw x64: use rip addressing on setup prim
...
byte code: 9017 => 8736
Save a register
2016-11-20 20:19:12 +01:00
Gregory Hainaut
923c297dfc
gsdx sw: vinsert128 opcode require an XMM register
...
Reported as an error on lastest Xbyak
2016-11-20 20:19:12 +01:00
Gregory Hainaut
e674518c4e
Update from xbyak 4.84 to 5.11
...
* bin2hex.h is removed
* vptest/vpblendvb YMM support integrated upsteam
* better support of rip for 64 bits
* AVX512 support (only miss the CPU now)
Local change: add BSD3 clause
2016-11-20 13:21:11 +01:00
Gregory Hainaut
681c09f25c
gsdx sw: catch xbyak exception
2016-11-20 12:58:07 +01:00
Gregory Hainaut
0fd5346860
gsdx x64 linux: only mmap in lower 2GB code segment
...
Allow to use rip addressing
2016-11-20 10:38:15 +01:00
Gregory Hainaut
2252ba1bb7
gsdx: add the detected ISA on the name
...
As a SSE build could potentially uses AVX operations.
2016-11-20 10:38:15 +01:00
Jonathan Li
ef25502491
gsdx build: don't exclude AVX files.
...
Thanks for the patch :)
2016-11-19 17:01:36 +01:00
Gregory Hainaut
cc6d193e1d
gsdx: Relax SSE/AVX constraint on 64 bits
...
The JIT will automatically select the best ISA (only AVX1 so far)
2016-11-19 17:01:29 +01:00
Gregory Hainaut
8fd46e96aa
gsdx sw JIT: dynamically select ISA for SetupPrim
2016-11-19 17:00:33 +01:00
Gregory Hainaut
574a2c774e
gsdx sw JIT: dynamically select between AVX1 and SSE code path (scanline)
2016-11-19 17:00:33 +01:00
Gregory Hainaut
6b78b8f9ce
gsdx sw JIT: dynamically select SSE41 at runtime even on SSE2 build (scanline)
...
It won't give the full SSE41 speed boost but it is better than nothing
2016-11-19 17:00:33 +01:00
Gregory Hainaut
322473c295
gsdx sw: add a code example for gather instruction
...
It will requires a generic (register naming) linear interpolation to use it properly
Gather instruction requires an extra mask register therefore all registers name will be shuffled
Perf wise, initial haswell implementation seems to be microcode emulated.
2016-11-19 17:00:33 +01:00
Gregory Hainaut
2e20693583
gsdx sw x64: restore read texel optimization
2016-11-19 17:00:33 +01:00
Gregory Hainaut
e728a14c19
gsdx sw: factorize color split in split16_2x8
2016-11-19 17:00:33 +01:00
Gregory Hainaut
d58e43edbf
gsdx linux: plug vtune as Windows
2016-11-19 17:00:32 +01:00
Gregory Hainaut
8abf242e2c
gsdx: small x64 printf warning fixes
2016-11-19 17:00:32 +01:00
Gregory Hainaut
051c5c4bf7
gsdx sw x64: small stack optimization on linux
...
mov with the stack pointer require less bytecode
2016-11-19 17:00:32 +01:00
Gregory Hainaut
141c9e9c86
gsdx sw x64: prefer faster 32 bits operation when possible
2016-11-19 17:00:32 +01:00
Gregory Hainaut
a281bda9a6
gsdx sw x64: port the scanline generator on AVX
...
Based on Gabest's work.
* Miss mipmap
Note: dithering info
It is a bit tricky as a2 on linux was rdx register which overlap with fzm (dh/dl)
It might require dedicated windows code
2016-11-19 17:00:32 +01:00
Gregory Hainaut
8e29e09943
gsdx sw x64: update setup prim generator x64 SSE&AVX
2016-11-19 17:00:32 +01:00
Gregory Hainaut
4a47224ac1
gsdx: define the linux x64 ABI
2016-11-19 17:00:32 +01:00
Gregory Hainaut
e31ce87bb3
gsdx: SW JIT debug helper
...
Allow to compare 32/64 bits (and all ISAs too)
Allow to breakpoint (int3)
Print selector info
Print size of buffer and start (disabled by default)
2016-11-19 17:00:32 +01:00
Gregory Hainaut
633f7a1db9
xbyak: add int3 instruction
...
Very useful to stop the JIT
2016-11-19 17:00:32 +01:00
Gregory Hainaut
43b4cfc215
gsdx: separate dump directory for 32/64 bits
2016-11-19 17:00:32 +01:00
Gregory Hainaut
82d12691e1
gsdx: properly check SSE support
...
1/ Check all "levels"
2/ requires AVX for 64 bits
2016-11-19 17:00:32 +01:00
FlatOutPS2
8db9a27970
fix2
2016-11-14 13:55:55 +01:00
FlatOutPS2
d1788ac1e9
fix
2016-11-13 10:56:35 +01:00
FlatOutPS2
de8d3fb1eb
LilyPad: Add PS mouse support
...
Adds Playstation Mouse as a new pad type.
For use with PS1 games only.
2016-11-13 01:23:59 +01:00
FlatOutPS2
a3478e02f4
LilyPad: Add tooltips ( #1653 )
...
Adds informational tooltips to several UI options.
2016-11-12 23:52:56 +00:00
Jonathan Li
f513ca2a28
cdvdgigaherz:linux: Check ioctl return value
...
Fixes Coverity CID 172718: Unchecked return value
Also avoid adding the sector leadout descriptor info to the TOC since it
actually isn't used.
2016-11-12 23:28:17 +00:00
Gregory Hainaut
49d5c4260f
gsdx state: post fix depth tracing
...
The main FindMinMax methods is perf critical so instead I created a separate function
to ensure the constness of the depth
Fix letter regression on Xenosaga3
2016-11-11 23:39:34 +01:00
Jonathan Li
1530effb29
gsdx: Catch bad_alloc exceptions
2016-11-09 22:41:02 +00:00
Jonathan Li
ae6f26f3ef
gsdx: Skip texture cache read if any dimension is 0
...
Fixes a crash at the PSX logo if either the DX9 or DX11 hardware
renderer is used.
2016-11-09 22:39:53 +00:00
Gregory Hainaut
f3e1ba5251
onepad gui: always assume rumble is supported on the GUI
...
close #1497
2016-11-08 21:23:56 +01:00
Gregory Hainaut
31b32d3b11
gsdx linux: don't require to hit enter for Texture Offset text entry
...
close #1292
2016-11-08 20:28:42 +01:00
Gregory Hainaut
ed3052dea5
gsdx: remove various assertion
...
Useless or wrong assertion
2016-11-08 18:58:10 +01:00
Jonathan Li
a283e95fed
cmake: Add cdvdgigaherz and dependencies
...
Only new dependency is libudev.
2016-11-07 00:08:23 +00:00
Jonathan Li
16b6cc41a4
cdvdgigaherz:linux: Add config and GUI code
2016-11-07 00:08:23 +00:00
Jonathan Li
747f4dc3fe
cdvdgigaherz:linux: Add initial IOCtlSrc implementation
2016-11-07 00:08:23 +00:00
Jonathan Li
f13f50779c
cdvdgigaherz: Export plugin interface when using gcc/clang
2016-11-07 00:08:23 +00:00
Jonathan Li
363b581926
cdvdgigaherz: ifdef Windows specific stuff
2016-11-07 00:08:23 +00:00
Jonathan Li
1573f513ce
cdvdgigaherz: Move lba_to_msf to header
...
Also use proper inline keyword.
2016-11-07 00:08:23 +00:00
Jonathan Li
ae0577bc16
cdvdgigaherz: Fix write-strings warnings
...
Too bad I can't change PS2Edef.h to use a const char*.
Also remove SVN_MOD ifdef from version string.
2016-11-07 00:08:23 +00:00
Jonathan Li
cccf216dbb
cdvdgigaherz: Use C++11 threads instead of Win32 threads
2016-11-07 00:08:23 +00:00
Jonathan Li
d872c0560a
cdvdgigaherz: Use unique_ptr for src
2016-11-07 00:08:23 +00:00
Jonathan Li
f8f79788e4
cdvdgigaherz: Use condition variables for event waiting
...
Also use atomics for thread exit variables.
2016-11-07 00:08:23 +00:00
Jonathan Li
f678ff8cfd
cdvdgigaherz: Replace critical section with mutex
2016-11-07 00:08:23 +00:00
Jonathan Li
b1850f2465
cdvdgigaherz: Move dllmain to a Windows only file
2016-11-07 00:08:23 +00:00
Jonathan Li
d7866831ae
cdvdgigaherz: Use Unicode on Windows
2016-11-07 00:08:23 +00:00
Jonathan Li
5917bf31c3
cdvdgigaherz: Remove old config code
2016-11-07 00:08:23 +00:00
Jonathan Li
59247c7838
cdvdgigaherz: Switch to using the new settings system
...
Also refactor the default drive selection and GUI code so optical drive
detection is shared.
Note: This breaks the current config, but there's only one setting
anyway.
2016-11-07 00:08:23 +00:00
Jonathan Li
dce3c57e6a
cdvdgigaherz: Add portable setting class
...
Can load/save inis (though functionality is very basic).
2016-11-07 00:08:23 +00:00
Jonathan Li
9c440ab6b7
cdvdgigaherz: Use bool return for ReadSectors*
...
More readable.
2016-11-07 00:08:23 +00:00
Jonathan Li
fc085c1758
cdvdgigaherz: Improve IOCtlSrc::ReadSectors2048
...
Don't use a RAW_READ_INFO struct when only the LARGE_INTEGER member is
used. Use SetFilePointerEx which is slightly simpler and doesn't require
checking GetLastError() in some circumstances to check whether the read
has actually failed.
Also use a mutex to prevent simultaneous access from both the read
thread and the keepalive thread to prevent overlapping SetFilePointerEx
calls from causing the wrong data to be read.
And print error messages should a failure occur.
2016-11-07 00:08:23 +00:00
Jonathan Li
fdd6ea3651
cdvdgigaherz: Simplify SetSpindleSpeed
...
Also set the max drive speed to 4x DVD and 24xCD (down from 8x DVD and
36x CD) - it seems to reduce pausing slightly since the drive doesn't
require as much time to spin up to the desired speed.
2016-11-07 00:08:23 +00:00
Jonathan Li
1834b7d0f9
cdvdgigaherz: Get disc info when disc is first ready
...
Also set the disc speed at the correct time - CDROM SET SPEED only stays
in effect till the disc is removed.
Also fix a memleak in CDVDopen when the drive cannot be accessed.
2016-11-07 00:08:23 +00:00
Jonathan Li
95b98c5a38
cdvdgigaherz: Use a formatted TOC instead of a raw TOC
...
It's simpler and provides almost the same information. The only
information that might be lost is the first track specific track type.
2016-11-07 00:08:23 +00:00
Jonathan Li
327515366f
cdvdgigaherz: Don't calculate the track length
...
Not really necessary.
Also fix 2 off-by-ones.
2016-11-07 00:08:23 +00:00
Jonathan Li
1f60e3101e
cdvdgigaherz: Reduce disc info ioctl calls
...
It's rather unnecessary to use the same ioctls multiple times per disc
when the info returned doesn't change. Just use each ioctl once and
read/calculate all the necessary info all at onace.
This also fixes an issue where the IOCTL_DVD_START_SESSION ioctl is
repeatedly used if the returned session ID is 0. The previous code
assumed that 0 was not a valid session ID and would repeatedly use the
ioctl to obtain a non-zero session ID. However, 0 is a valid session ID,
and it seems IOCTL_DVD_START_SESSION can repeatedly return a 0 session
ID even if the corresponding IOCTL_DVD_END_SESSION has not been called.
In our case, a DVD session is only necessary for DVD detection and
reading the physical format information. This fix seems to alter drive
speed behaviour.
2016-11-07 00:08:23 +00:00
Jonathan Li
f8e474a1c5
cdvdgigaherz: s/device/m_device/
2016-11-07 00:08:23 +00:00
Jonathan Li
8f11049c9f
cdvdgigaherz: Remove non-SPTI raw sector reading code
...
There doesn't seem to be any issues calling CreateFile with
GENERIC_WRITE access (which is necessary for SPTI) on a standard user
account, so the SPTI code should work in all cases.
2016-11-07 00:08:23 +00:00
Jonathan Li
f314c2a4d9
cdvdgigaherz: Simplify Q subchannel relative offset calculation
...
That way there's no need to calculate the track length for each track.
2016-11-07 00:08:23 +00:00
FlatOutPS2
5d90afe648
LilyPad: Add separate bindings for each pad type ( #1609 )
...
Adds separate bindings for each of the pad types (DualShock2,
Guitar,Pop'n Music). This allows the user to change the button
configuration to better suit the Guitar and Pop'n Music pads without
messing up the bindings already setup for the DS2.
Close #1576 .
2016-11-06 21:59:19 +00:00
Gregory Hainaut
5ff9e94a2e
gsdx linux: align mipmapping gui option on Windows
2016-11-06 16:39:40 +01:00
Gregory Hainaut
107251e099
gsdx: sort crc game list
2016-11-06 16:30:51 +01:00
Akash
1547dd4215
GSDX-UI: Add Mipmap combobox
...
Mipmapping is now supported on hardware renderers thanks to Gregory. Please report any observed hardware mipmapping issues on the forums (http://forums.pcsx2.net/Thread-New-feature-Needs-testing-GSdx-HW-mode-Experimental-mipmap-support ) as potentially the HW mipmap code might still have some bugs.
2016-11-05 22:19:32 +05:30
Akash
58ed49f3c9
GSDX: Clean up warnings on MSVC
...
* Explicitly cast w_pages and h_pages into uint32.
* Prevent signed/unsigned comparison by converting lod into unsigned integer, honestly how coud a mipmapping level be negative?
2016-11-05 10:28:04 +01:00
Gregory Hainaut
758cf25888
gsdx: wrap bp for block ptr
...
Fix massive flickering of Beyond Good&Evil on SW renderer (HW happily overflow)
2016-11-04 23:03:12 +01:00
Gregory Hainaut
3d65312999
gsdx hw: remove old assert
...
Code is working fine with all formats
2016-11-04 23:02:49 +01:00
Akash
437afbbbf3
GSDX-PCRTC: Move Saturation hack to displayrect()
...
Fixes custom resolution scaling on Tribes aerial assault.
2016-11-01 17:54:46 +01:00
Akash
b871c6b46f
GSDX-TextureCache: Generalize scaling equation
...
Previously the dedicated custom resolution scaling equation was ignored for the second SetScale() call, generalizing the equations will also fix the DMC scaling issue on custom resolution. Also remove unnecessary checks for null on scale factors. The possibility for having a null scale factor value only exists on custom resolution and it will only happen on cases where the output circuit isn't ready yet. So the ideal way would be to handle all the required conditions of output circuit on "m_renderer->CanUpscale()" itself.
2016-11-01 17:54:46 +01:00
Akash
055f236aa5
GSVector: Add constructor to dispatch same values
2016-11-01 17:54:46 +01:00
Gregory Hainaut
aa4b2d9f3a
gsdx sw: wrap GS memory
...
Cost ought to remain small. Worst case is 2 extra "and" operation by group of pixels in scanline renderer
I think PixelAddressN functions are mostly call in the init.
2016-11-01 13:33:11 +01:00
Pseudonym
233f66db5e
Fixed effects area wrapping calculation, which was always buggy but this
...
wasn't evident until additional addresses were precalculated.
Not expected to improve compatibility.
2016-11-01 11:12:41 +00:00
Jonathan Li
ba557e20a4
gsdx:recorder:unix: Fix thread leaking
2016-10-28 18:33:50 +01:00
Jonathan Li
7ab5cb20c8
gsdx: Don't close threads twice
...
CloseThread is called in the GSJobQueue destructor, so don't call it
again in the GSThread destructor.
Fixes #392 , which was caused by a use after free.
Also prevents pthread_join() from being called twice for each thread
on non-Windows operating systems, which is undefined behaviour.
2016-10-28 18:33:35 +01:00
Jonathan Li
bc7aa1a500
spu2-x:freebsd: Enable SDL backends
...
portaudio currently isn't providing me with sound, even though it did
before.
2016-10-27 22:03:49 +01:00
Jonathan Li
86a6f5d67c
cdvdgigaherz: s/itob/dec_to_bcd/
...
There's no need to have 2 ways to convert a u8 to a binary coded
decimal. Remove the macro version.
2016-10-26 22:11:40 +01:00
Jonathan Li
852ed21e88
cdvdgigaherz: Remove no drive support
...
It's the same as "No disc" or having no disc in the drive.
2016-10-26 17:30:28 +01:00
Jonathan Li
c023d7676a
cdvdgigaherz: Remove Source base class
...
Also remove virtuals from IOCtlSrc.
2016-10-26 17:30:27 +01:00
Jonathan Li
9f6c6d9917
cdvdgigaherz: Don't use GetFileSizeEx to get disk size
...
It doesn't seem to work for disks, and IOCTL_DISK_GET_LENGTH_INFO
usually succeeds instead.
2016-10-26 17:30:23 +01:00
Jonathan Li
9c643ae9ca
cdvdgigaherz: Remove CDVDabout and SysMessage
...
It's not accessible from PCSX2. More importantly, I don't want to port
it.
2016-10-26 17:30:21 +01:00
Jonathan Li
fb3580efa1
cdvdgigaherz: Remove unneeded code
2016-10-26 17:30:16 +01:00
Gregory Hainaut
5dfb7d63dc
gsdx: wrap gs page/block instead to skip them
...
Fix FMV of Thrillville when coupled with wrap_gs_mem = 1
2016-10-25 22:49:05 +02:00
Gregory Hainaut
db4b4fb166
gsdx ogl: keep a separate log for sw
2016-10-25 22:00:41 +02:00
Gregory Hainaut
cedc8aae44
gsdx: implement a shared memory to emulate the wrapping of the gs memory
...
Code can be enabled with "wrap_gs_mem = 1". Code only allow a single shared memory but
I don't think we need more anyway.
Linux only, Kernel panic expected with the HW renderer.
Fix FMV on Silent Hill 3 with the SW renderer
2016-10-25 20:29:38 +02:00
Gregory Hainaut
42b51611af
gsdx: don't dump debug file if not requested
2016-10-25 17:10:57 +02:00
sudonim1
820462dbc0
Merge pull request #1635 from sudonim1/reverb
...
SPU2-X: Reverb rewrite
2016-10-24 17:17:48 +01:00
Gregory Hainaut
e80ca0fa92
gsdx ogl: of course some driver don't work with GL_ARB_enhanced_layouts
...
Windows and (AMD or Intel)
2016-10-23 12:48:23 +02:00
Gregory Hainaut
885ef7a46f
gsdx ogl: reduce complexity of driver detection
2016-10-23 12:43:50 +02:00
Gregory Hainaut
565cb70875
gsdx ogl: don't request arb_texture_barrier for the SW renderer
...
Allow[1] to use the mesa software emulated driver to test EGL.
[1] also need export MESA_EXTENSION_OVERRIDE="GL_ARB_buffer_storage"
2016-10-23 12:13:57 +02:00
Pseudonym
1668392988
SPU2-X: Mass reverb register renaming. Hopefully I didn't screw up the
...
cross-channel reflection registers.
2016-10-22 19:16:11 +01:00
Pseudonym
9a51820dec
SPU2-X: Experimental reverb based on Dr. Hell's
...
http://drhell.web.fc2.com/ps1/ and/or Martin Korth's
http://problemkaputt.de/psx-spx.htm reverse engineering.
Negate final reverb output (don't know why but it's an
improvement when comparing the waveform).
2016-10-22 19:16:11 +01:00
Gregory Hainaut
01f0f436ac
gsdx linux replayer: allow to repack gs dump
...
linux_replay = -N will save N first frames to a new gs dump
Save disk space & debug time
2016-10-22 13:22:28 +02:00
Gregory Hainaut
99c43881df
gsdx egl: report an error if we fail to bind the openGL API
...
It seems Nvidia added openGL support in 355 (whereas I have 352 on debian).
I don't know the status on AMD.
2016-10-22 13:22:28 +02:00
Gregory Hainaut
d4a163e9cc
spu2: improve format consistency
2016-10-22 13:22:28 +02:00
Pseudonym
1f44c4be2f
SPU2-X: PSX games should be able to read ENDX correctly now, which is
...
important functionality for many sound engines.
Fixed two other obvious errors in the psx compatibility merge, probably
inconsequential.
2016-10-20 04:17:03 +01:00
Gregory Hainaut
8fdf973e66
gsdx glsl: add basic support of GL_ARB_enhanced_layouts (GL4.4)
...
Hardcode location of interface to the location 0. If I understand the
spec correctly (unlikely), variable in interface will get successive
location.
Goal is to reduce driver work. Instead to compute some location based on
name matching approach (and silly validation), the driver can now use
static allocation.
Tests on future Mesa 13 are welcome
2016-10-19 23:03:39 +02:00
Gregory Hainaut
b1f2d27ddf
gsdx: move Haunting Ground CRC to dx level
2016-10-19 21:10:44 +02:00
Gregory Hainaut
264b764d6e
gsdx tc: improve haunting ground hack to remove the bloom effect
...
Just clear the buffer. The generic solution will be a copy from buffer A
to buffer B But it requires
1/ a big buffer A (otherwise it would overflow)
2/ a line width rescaling (+ the upscaling mess support)
2016-10-19 19:31:32 +02:00
Gregory Hainaut
c2cf8e528c
gsdx ogl: tekken5: only trigger channel effect shader when frame buffer is a single page
...
Fix missing model regression.
2016-10-17 19:34:55 +02:00
Clang Format
604d3bac3c
clang format: set SpacesBeforeTrailingComments to 1
2016-10-16 21:42:31 +02:00
Akash
8945ace3f7
GSDX-UI: Remove Trilinear options at some cases
...
Currently the Trilinear option only works on OpenGL. Remove it from combobox when other renderers are used.
2016-10-16 17:36:30 +01:00
Akash
45be4626f6
GSDX: Add an enum for texture filtering
...
Also re-order the combobox to make it look consistent with the tooltip description.
2016-10-16 17:36:30 +01:00
Gregory Hainaut
cc4cc342c2
gsdx hw: add a special sub target invalidation for haunting ground
...
Fix a wrong blending/blooming
Based on CRC to reduce impact on others games (speed)
2016-10-16 17:32:57 +02:00
Gregory Hainaut
31248da3d1
gsdx sw: Fix 16 bits date test on SSE build
...
AVX Builds were fixed in this commit a1a842b07f
2016-10-16 16:48:23 +02:00
Gregory Hainaut
defdd27987
gsdx: set m_nativeres to true in replayer
...
Otherwise you can't compare draw call between native and upscaled
2016-10-16 16:48:23 +02:00
Robert Neumann
f5e096a66f
spu2x: indicate pitch modulation and noise enabled status in the visual debugger
2016-10-16 14:15:12 +02:00
Gregory Hainaut
c284459382
gsdx tc: allow to search old depth/color in texture cache
...
But give higher priority to recent buffer.
Fix cut scene issue in Jak II (and potentially various game when EE/VU hacks are used)
2016-10-15 18:08:00 +02:00
Gregory Hainaut
7bb201a1d2
gsdx tc: move code to allow to lookup an older target if none was found
...
Next step is to enable it by uncommenting line 452
2016-10-14 22:03:29 +02:00
Gregory Hainaut
24684033ca
gsdx: enable clut_load_before_draw option on Harley Davidson (CRC hack)
...
At least the game is good until we find how the HW really behave
2016-10-14 20:47:18 +02:00
Gregory Hainaut
2c0a4ac906
gsdx ogl: add an extra debug log level
...
Avoid too much log
2016-10-14 20:46:58 +02:00
Gregory Hainaut
3c30db965d
gsdx gui: add a combo box on linux (below Interlace)
...
3 states are off/half/full. I'm too lazy to create a better combo box.
The hack option will be removed when Windows GUI is ready
2016-10-14 19:26:58 +02:00
Gregory Hainaut
37a1230c01
gsdx: reduce code duplication for key event
2016-10-14 19:26:58 +02:00
Gregory Hainaut
a4658eac24
gsdx hw: allow overlapping of texture (alpha) and framebuffer (RGB)
...
Fix HUD on Berserk
v2: use fbmask instead of hacking the target format to 24 bits.
2016-10-14 19:26:27 +02:00
Gregory Hainaut
25e76d0564
gsdx ogl: use an invalid value for stencil state
...
Fix shadow in WWE Smackdown Vs Raw 2006
2016-10-14 19:01:18 +02:00
Gregory Hainaut
51c64fcbe6
gsdx sw: trick GetFeedbackOutput to handle basic merge loopback
...
It is enough for Xenosaga.
2016-10-14 18:13:20 +02:00
Gregory Hainaut
deb2ed3d09
gsdx ogl: reimplement merge circuit to support feedback write
2016-10-14 18:13:20 +02:00
Gregory Hainaut
06055add5c
gsdx merge: get a new buffer for the feedback write
2016-10-14 18:13:20 +02:00
Gregory Hainaut
317a464278
gsdx shader: RGB => YUV conversion
...
Required for write feedback emulation
2016-10-14 18:13:20 +02:00
Jason Brown
6ef5607d99
gsdx shader: add a shader to render text for OSD
...
Gregory: code extracted from the OSD PR to reduce conflict
2016-10-14 18:13:20 +02:00
Jason Brown
d84d30fe87
gsdx: Add color component to OGL shaders
2016-10-14 18:13:20 +02:00
Gregory Hainaut
7ca9ca9465
gsdx: new parameter for merge virtual function
...
* Add full PMODE register to replace slbg/mmod
* Add full EXTBUF register (will allow to emulate write feedback)
* Add a third source (which will actually be the destination of the
write feedback)
2016-10-14 18:13:20 +02:00
FlatOutPS2
357dcdb55e
GSdx: Move alpha stencil hack back to original location
...
Avoids skipping the alpha stencil hack.
2016-10-14 16:36:17 +02:00
Gregory Hainaut
fbf7ccbdda
gsdx: by default new will throw std::bad_alloc
...
So catch/use it and don't bother with GSDXErrorOOM
2016-10-13 20:44:59 +02:00
Gregory Hainaut
c440c7c93a
gsdx gui: update the filter combox box with new trilinear options
...
OpenGL only
v2: update setting tooltip based on turtleli feedback
2016-10-13 20:16:38 +02:00
Gregory Hainaut
5ced9c1f19
gsdx mipmap:ogl: plug trilinear/mipmap2 option
...
mipmap option 3. Actually maybe a separate tri-linear option will be better
m_mipmap == 2 => use manual PS2 trilinear/mipmap
Otherwise
m_filter == 3 => always use full automatic trilinear interpolation
m_filter == 4 => use automatic trilinear interpolation when PS2 uses mipmap
m_filter == 5 => like 4 but force bilinear interpolation inside layer
2016-10-13 20:16:38 +02:00
Gregory Hainaut
c2777ff989
gsdx state: split IsMipmapActive in 2 pieces
...
This way we can test if a draw call requires a triliner filtering.
It will be used in next commit to implement automatic trilinear
2016-10-13 20:16:38 +02:00
Gregory Hainaut
1b9b47dd6a
gsdx mipmap:ogl: add capabilities to automatically generate mipmap layer
2016-10-13 20:16:38 +02:00
Gregory Hainaut
510eccd471
gsdx mipmap: enable fully tri-linear filtering
...
(when mipmap > 1)
2016-10-13 20:16:38 +02:00
Gregory Hainaut
a8a2db8eb1
gsdx mipmap:ogl: extend HW sampler with tri-linear filtering
...
v2:
* use nice enum
* use bilinear info when there is no mipmap (more accurate)
2016-10-13 20:16:38 +02:00
Gregory Hainaut
335d7f3ae5
gsdx: add a nice enum for min filter
2016-10-13 20:16:38 +02:00
Gregory Hainaut
7ea0e90678
gsdx mipmap:ogl: extend shader to support trilinear filtering
2016-10-13 20:16:38 +02:00
Gregory Hainaut
d185a85a07
gsdx ogl: replace simple_sample variable by the opposite shader_emulated_sampler
...
It feels easier to read this way
2016-10-13 20:16:38 +02:00
Gregory Hainaut
ae441e6a2c
gsdx mipmap:HW: Update all valid texture layers
2016-10-13 20:16:38 +02:00
Gregory Hainaut
5d593dd948
gsdx mipmap:HW: save state of both min&max lod values
2016-10-13 20:16:38 +02:00
Gregory Hainaut
15b1d8d3f0
gsdx mipmap:tc: add code to update a single layer of a mipmap
2016-10-13 20:16:38 +02:00
Gregory Hainaut
dbb4bdf59f
gsdx mipmap:ogl: add GL_TEXTURE mipmap support
...
* Allocate more memory for extra layers
* Allow to upload data in any layers
2016-10-13 20:16:38 +02:00
Gregory Hainaut
76bd968c59
gsdx mipmap: extend texture/cache to support a layer parameter
2016-10-13 20:16:38 +02:00
Gregory Hainaut
b695e0065a
gsdx mipmap: use a 3 state option
2016-10-13 20:16:38 +02:00
Jonathan Li
679f3347bb
cdvdgigaherz: Read raw CD sectors one by one ( #1590 )
...
A multi sector raw disk sector read that reads data from two tracks of
different types will not complete successfully. Reading the sectors one
at a time should fix the issue.
2016-10-10 22:33:15 +01:00
Clang Format
039573b133
clang-format spu2x
...
Note: it doesn't play well with define around forceinline (might need to fix the inline btw)
And a single macro in RegTable.cpp
2016-10-10 20:41:24 +02:00
Robert
36631f2270
remove a useless define
...
cosmetics
more cosmetics
some more cosmetics? sure!
whitespaces
whiterspaces
2016-10-09 20:10:53 +02:00
Robert
95fe77a594
bad merge fix
2016-10-09 16:15:19 +02:00
Robert Neumann
19a8ed8b25
psxmode: Spu2x: more native SPU2 reghandlers. first "working" reverb! (everything before was just random data)
2016-10-09 15:52:47 +02:00
Robert Neumann
ee05137415
psxmode: Spu2x: add reverb register handling, fix a problem with the address translation, re-enable "VMIXEL" writing (which should just be named Echo/Effect ON or EON really)
2016-10-09 15:52:47 +02:00
Robert Neumann
1ec70f1df3
psxmode: Spu2x now working correctly. Kudos to pseudonym. Took him 30 minutes to fix this!
2016-10-09 15:52:46 +02:00
Robert Neumann
08b6edae80
psxmode: further spu2x work
2016-10-09 15:52:45 +02:00
Robert
3aabc1adbf
spu2x work 1
2016-10-09 15:52:05 +02:00
Gregory Hainaut
9af34cc611
gsdx tc: miss a set scaling call
...
Likely impact issue #83/#694
2016-10-09 13:07:08 +02:00
Gregory Hainaut
3b733930fe
gsdx: UserHacks_TextureInsideRt must be disabled by default
...
Likely a bad copy/past
2016-10-09 12:13:37 +02:00
Gregory Hainaut
344636d88e
gsdx ogl: attach input texture before copy
...
Help to ensure with copy the good texture in debugger
2016-10-08 23:42:39 +02:00
Gregory Hainaut
22ebdcf1cf
gsdx debug: create a nice dump function for kernel gs registers
...
Add missing register
2016-10-08 23:42:39 +02:00
Andreas
ab228c8484
Added missing CRC for Grand Theft Auto San Andreas.
2016-10-08 18:38:50 +03:00
FlatOutPS2
db853b4462
GSdx: Add Jak 2 US CRC to GSCrc list.
...
Fixes issue: https://github.com/PCSX2/pcsx2/issues/1603
2016-10-07 13:14:15 +03:00
Gregory Hainaut
574a807678
gsdx tc: new hack to extract texture from rt
...
UserHacks_TextureInsideRt = 1 (don't look at Jak)
2016-10-07 01:43:04 +02:00
Gregory Hainaut
8873b27eb8
gsdx: let's keep the new clut option off
...
There are still issue with virtua fighter (albeit my dump is better...)
2016-10-06 22:05:03 +02:00
Gregory Hainaut
79666b26c0
gsdx sw: restore the const reference
...
It was removed for PSX hack which was removed a couple of commits ago
2016-10-06 20:02:22 +02:00
Gregory Hainaut
c66004bbb2
gsdx: hidden option to better support dual context clut
...
Option is on by default. Just a safety net in case of regression
Fix clut issue on virtua fighter (SW) and harley davidson (SW/HW).
2016-10-06 19:08:21 +02:00
Gregory Hainaut
9cd4984f7c
gsdx debug: more log
2016-10-06 18:56:31 +02:00
Gregory Hainaut
d827497403
gsdx: let's handle illegal 4 bits format too
...
In doubt if some games use them.
2016-10-05 22:07:49 +02:00
Gregory Hainaut
9b93c07339
gsdx: Handle illegal 8 bits format. Found the most silly GS dev trick
...
Fix Berserk #1526 Well done guys but we're more clever than you ;)
So instead to mask the color channels as any guy that RTFM, they decided to use the illegal 8H frame format
2016-10-05 22:07:43 +02:00
Gregory Hainaut
6fd46eb36a
gsdx: move the validation of the texture format before the draw call
...
Avoid false positive when game write dummy stuff
2016-10-05 22:07:23 +02:00
Pseudonym
a0629587be
gsdx memory: implement read texture of PS GPU24
...
convert the swizzled block as tightly packed 24 bits RGB
Then convert scanline to standard 32 bits RGBA
The HW renderer requires the preload data hack
2016-10-05 21:59:42 +02:00
Gregory Hainaut
1c900e780a
gsdx memory: add a PS GPU 24 bits format
...
Same swizzle as 16 bits. But contains tightly packed RGB pixels.
2016-10-05 21:06:38 +02:00
Gregory Hainaut
1cc696ab31
gsdx hw: update TEST.ATE field after ATE optimization
...
Otherwise DoFirstPass/DoSecondPass will give you result based on pre-ATE optimization
Close #1607
2016-10-05 09:43:24 +02:00
Gregory Hainaut
3653a7746a
gsdx psxmode: small hack to "see" video until we found a better solution
2016-10-05 09:43:24 +02:00
Gregory Hainaut
677f890c5c
gsdx debug: static GSState::s_n
...
This way you can access the current draw call anywhere. Very useful for debug.
2016-10-05 09:43:24 +02:00
Gregory Hainaut
61333ecb40
gsdx debug: trace register access
...
I didn't include high frequency register such as vertex stuff
main goal is to give the possibility to trace the texture/clut update
2016-10-05 09:43:24 +02:00
Gregory Hainaut
1b8d6a38e7
Merge pull request #1586 from PCSX2/gsdx-refresh-gui-options
...
Gsdx refresh gui options
2016-10-04 18:30:48 +02:00
Gregory Hainaut
354aa6831b
gsdx ogl: brain hang in the middle of the line
...
Only impact if bilinear is forced
2016-10-03 18:52:02 +02:00
Gregory Hainaut
5b72fab2e4
gsdx ogl: depth regression from 866173a481
...
Only mask depth if the min value is too big
Issue #1602
2016-10-03 18:32:54 +02:00
Gregory Hainaut
3be055a366
gsdx hw: remove code to detect an effect
...
It was a tentative to emulate GTA radiosity but the new hack is more generic
2016-10-02 18:29:23 +02:00
Gregory Hainaut
49c44db635
gsdx:dx: make filtering right
...
WMS/WMT 2 is the region clamping mode.
Hw unit can't emulate it right so it can give you bad filtering (Fix #1025 )
Note: I only did the fix because I wanted to remove the TEXA hack. Otherwise
it is still recommended to use openGL
2016-10-02 18:21:52 +02:00
Gregory Hainaut
7f4791fa85
gsdx hw: improve no_ds detection
...
Support ZTST_NEVER as no depth read => psx mode speed boost
Use zm/fm to reduce further depth lookup
2016-10-02 18:21:52 +02:00
Gregory Hainaut
c3ac3ecbe7
gsdx hw: move try alpha test at the beginning
...
Will allow to use alpha test optimization to better optimize depth lookup
Require to do clut handling before
2016-10-02 18:21:52 +02:00
Gregory Hainaut
dc365e066d
gsdx tc: remove old plain TEXA hack
...
It must work fine without it now.
From the google code comments:
It would be nice to test those games
* Ar Tonelico 2 (line in sprite regression?)
* breath of fire dragon quarter (overlayed user interface in the game)
v2: update Dx code to use the good format
2016-10-02 18:21:52 +02:00
Gregory Hainaut
cf13cccb1e
gsdx: avoid useless spamming of INVALID PSM in release build
2016-10-02 18:21:41 +02:00
Gregory Hainaut
955a69b16e
gsdx ogl: fix GT4 regression (wrong texture on timing)
2016-10-02 12:16:48 +02:00
Gregory Hainaut
c7c6566bca
gsdx hw: of course the full Jak series will kill me
2016-10-02 11:57:09 +02:00
Gregory Hainaut
b6638d4eec
gsdx hw: forgot to comment an unused variable
...
Keep the code in case, we better solution is found to validate the depth/frame format
2016-10-02 10:18:15 +02:00
Gregory Hainaut
3996fbe365
gsdx hw: reduce conplexity around TryAlphaTest
...
* As sw renderer, don't bother to bypass it when it is ATST_ALWAYS
* Don't update the ATE register value
=> It is a really bad idea. Next draw call will be wrong if TEST register isn't written.
The TryAlphaTest context could have been updated
2016-10-01 19:20:49 +02:00
Gregory Hainaut
c5f086b385
gsdx ate: separate the code that depends on TEST.AFAIL
...
Easier to read and allow a switch optimization
Add a shortcut for the common ATST_ALWAYS case
2016-10-01 19:20:38 +02:00
Gregory Hainaut
4612b79575
gsdx: add a warning on vertex trace
...
Due to a division by 2, depth lsb bit is always 0
I'm not sure it is critical but let's keep a note for the future
2016-10-01 19:16:44 +02:00
Gregory Hainaut
d1e07295e7
gsdx linux: add the missing gui option for unscale point/line primitive
2016-10-01 19:16:44 +02:00
Gregory Hainaut
5e1064da55
gsdx: remove the safe accurate blending hack
...
V2: Integrate Flatout patch to do the Window side
2016-10-01 19:15:52 +02:00
Gregory Hainaut
f77c1900fa
gsdx tc: always clear a new depth buffer
...
Random data isn't a good idea for a depth buffer. It can cause flickering. (Jak2 FMV)
Hopefully it won't impact too much the speed.
2016-10-01 19:00:17 +02:00
Gregory Hainaut
9c84712640
gsdx hw: enable palette read back on Jak2
2016-10-01 18:47:21 +02:00
Gregory Hainaut
5d93a392e4
gsdx hw: xman half screen correction
2016-09-30 22:25:24 +02:00
Gregory Hainaut
29c25bc375
gsdx clut: disable some assertions often fired
2016-09-30 22:24:38 +02:00
Gregory Hainaut
34686394a6
gsdx hw: add an hack for Jak3
...
I'm disappointed...
Read back palette written by the GPU. Avoid strange color on the skin.
2016-09-30 19:22:16 +02:00
Gregory Hainaut
df2f8684d6
gsdx: improve TC cache log
2016-09-30 19:18:58 +02:00
Gregory Hainaut
8d24aa2b39
gsdx: GoW2 half screen bug
...
... Seriously ...
2016-09-30 19:15:25 +02:00
Gregory Hainaut
fc32b749dd
onepad: fix a pad regression on odin sphere
2016-09-30 10:25:14 +02:00
Gregory Hainaut
8d4fadb3c8
Revert "gsdx state: TEX0 write behavior might depends on the context"
...
This reverts commit b34243fa7b
.
Unfortunately we have a regression on GT4. I'm doomed
2016-09-28 20:00:56 +02:00
Gregory Hainaut
90ad9cf668
gsdx hw mipmap: tune the rounding + remove previous hack
...
GS really uses an invalid texture located at 0.
Improve the rounding for R&C. The idea is to avoid the corner case were only
the corner of the triangle touch the 7/16 edge.
2016-09-28 19:41:12 +02:00
Gregory Hainaut
adb8be3287
gsdx: add/update comment
...
Need to investigate why the number of vertex is different in upscaled resolution
2016-09-28 19:41:12 +02:00
Gregory Hainaut
749037346c
gsdx: report an error if PSM is invalid
2016-09-28 19:41:12 +02:00
Gregory Hainaut
fea31f7422
gsdx: don't use virtual when it is useless
2016-09-28 19:41:11 +02:00
Gregory Hainaut
97172f5e51
gsdx debug: count draw call in a different way
...
* Always do +1 before the draw call
* Prefix texture name with i (as input) to keep them before the FB
Goal is to ensure that all renderers share the same draw call value.
2016-09-28 19:41:11 +02:00
Gregory Hainaut
b34243fa7b
gsdx state: TEX0 write behavior might depends on the context
...
Game: harley davidson
* write tex0 ctx0
* write tex0 ctx1
* draw ctx 0
Previous GSdx behavior will load the clut every write of TEX0. In the
above case the draw will take the wrong clut.
To be honest, it could be a wrong emulation on the EE core emulation.
The hardware likely got a single clut (1KB cache is quite expensive)
So clut loading must be skipped if the context is wrong.
Next draw will use the ctx1 clut so I apply TEX0 when the context is switched
Please test harley davidson :)
v2: detect context switch from UpdateContext function
V3: always set m_env.CTXT[i].offset.tex, avoid crash (Thanks to FlatOutPS2 that spot the issue)
V4: move bad psm correction code (rebase put it in the wrong place)
2016-09-27 10:04:09 +02:00
Gregory Hainaut
e0961d81a0
gsdx HW: use after free crash
...
Free bt
3 0xe676d194 in ~Source ../plugins/GSdx/GSTextureCache.cpp:1526
4 0xe676d194 in GSTextureCache::SourceMap::RemoveAt(GSTextureCache::Source*) ../plugins/GSdx/GSTextureCache.cpp:1990
5 0xe676f0fe in GSTextureCache::IncAge() ../plugins/GSdx/GSTextureCache.cpp:1022
Use bt
0 0xe6772a83 in GSTextureCache::LookupSource(GIFRegTEX0 const&, GIFRegTEXA const&, GSVector4i const&) ../plugins/GSdx/GSTextureCache.cpp:204
1 0xe66b0c9f in GSRendererHW::Draw() ../plugins/GSdx/GSRendererHW.cpp:579
2 0xe66fb43e in GSState::FlushPrim() ../plugins/GSdx/GSState.cpp:1509
Hypothesis the m_map array of list contains an invalid pointer
It is populated GSTextureCache::SourceMap::Add based on the coverage. The coverage is based on the offset.
So offset is potentially wrong. As mipmap code hack the offset value. It would be a nice culprit.
This commit avoids a potential bad transition between MIPMAP (which
overwrite the "offset") and the base layer (which wrongly keep an old "offset")
Conclusion, pray for my soul as it is very hard to reproduce
2016-09-26 20:34:38 +02:00
Gregory Hainaut
04d82d8127
gsdx: size doesn't count but 0.625 might change your life :p
2016-09-26 19:42:07 +02:00
Gregory Hainaut
be9995bd1e
gsdx mipmap: improve robustness to avoid potential crash
2016-09-26 09:27:03 +02:00
Gregory Hainaut
ebb2a8ad5a
gsdx debug: Add DISABLE_WIP_ASSERTION
...
To easily disable assertion on codes that only require investigation
2016-09-25 20:00:51 +02:00
Gregory Hainaut
ca4f265ce6
gsdx debug: dump mipmap register could be useful now :)
2016-09-25 20:00:51 +02:00
Gregory Hainaut
ef9a144437
gsdx hw: extra trick for the mipmap
...
Ratchet & Clank (the third) uses an address of 0 for invalid mipmap.
It would be very awkward to put the middle layer of texture in start of
memory. So let's use this information to correct the lod.
It make the game more robust on the lod rounding
2016-09-25 11:54:00 +02:00
Gregory Hainaut
78b2848622
gsdx: factorize the TEX0 generation for mipmap
2016-09-25 11:51:48 +02:00
Gregory Hainaut
ccd9ce1728
gsdx hack: move tales of legendia hack to full move
...
Also remove the OI hack which is handled by the generic double half clear
2016-09-25 10:17:08 +02:00
Gregory Hainaut
e229dc1549
gsdx hack: move Resident Evil 4 to full level
...
The CRC hack removes the fog, without the hack the screen turns green with D3D,, but the fog emulates correctly on OGL with hardware depth.
2016-09-25 10:13:21 +02:00
Gregory Hainaut
ad8a84a532
gsdx hw: reduce hack of Spyro series
...
Based on the comment, it ought to be fixed with previous commit.
2016-09-25 10:08:55 +02:00
Gregory Hainaut
7f871b0cc6
gsdx hw: remove various CRC hack that ought to be fixed with previous commit
...
* SpidermanWoS
* TyTasmanianTiger
* TyTasmanianTiger2
* DigimonRumbleArena2
* XmenOriginsWolverine
* CallofDutyFinalFronts
* GoW2 (only in openGL)
2016-09-25 10:08:54 +02:00
Gregory Hainaut
1e343084e2
gsdx hw: group the double half clear with gs mem clear hack
...
It avoid redundant check of the GS context
You can disable the extra clear with UserHacks_DisableGsMemClear = 1
2016-09-25 10:08:54 +02:00
Gregory Hainaut
6c6ed5f443
gsdx ogl: trigger the special RW framebuffer shader when only Alpha is written ( #1588 )
...
* gsdx ogl: trigger the special RW framebuffer shader when only Alpha is written
It will work for both Jak and Ratchet&Clank and without CRC
2016-09-25 10:05:44 +02:00
Gregory Hainaut
6e2bf98d5f
gsdx hw: round mipmap lod value
...
Will avoid some corruption based on distance/angle
2016-09-24 20:05:39 +02:00
Gregory Hainaut
719982e4a3
gsdx hw: forget to update a parameter
...
OMG, fixes various mipmap issues
2016-09-24 18:57:47 +02:00
Gregory Hainaut
76494e5f9c
gsdx hw: add an userhack for hw mipmap
2016-09-24 12:39:31 +02:00
Gregory Hainaut
e38aba0dff
gsdx: rename SW texture dump filename
...
* Use texraw for the unconverted texture (keep index fmt)
=> avoid bad filename order with the multiple texture layers
* add the real mipmap address
* Use a nice string format
2016-09-24 09:15:40 +02:00
Gregory Hainaut
d89b09427f
gsdx: gl logging is only available in MTGS thread
...
Fix crash in debug build
2016-09-22 17:54:44 +02:00
Gregory Hainaut
b00ae974d2
gsdx ogl: fix bad interaction between accurate blending and geometry shader
...
Recent optimization allow to use triangle to render sprite even when gs is supported
close #1574
2016-09-20 09:30:24 +02:00
Jonathan Li
c64e8f944e
cdvdgigaherz: Fix printf sign mismatch warnings
...
Fixes warning C6340: printf sign mismatch
Only remaining warnings for cdvdGigaherz (using level 4 warning
settings) are:
C6258: TerminateThread does not allow proper thread clean up
C4201: nonstandard extension used: nameless struct/union (from the
lo/hi u128 struct in common/include/Pcsx2Types.h)
2016-09-20 01:24:23 +01:00
Jonathan Li
57d029f34a
cdvdgigaherz: Use INT_PTR for dialog handler return type
...
BOOL is not the correct return type (though it works for 32-bit).
2016-09-20 01:23:47 +01:00
Jonathan Li
0ca36e8943
cdvdgigaherz: Fix value truncation warnings
...
Fixes warning C4244: conversion to smaller data type, possible loss of
data.
2016-09-20 00:47:15 +01:00
Jonathan Li
a61aa8ff0b
cdvdgigaherz: Remove unreachable return
...
Fixes warning C4702: unreachable code
2016-09-20 00:46:33 +01:00
Clang Format
2967d5d3f1
cdvdgigaherz: Reformat with clang-format
2016-09-19 19:53:00 +01:00
Jonathan Li
60da39712c
cdvdgigaherz: Remove unused code/macros/variables/etc
...
The SPTI code is unused, and it's simpler to just use the Windows
ioctls/API if they work (only raw disk sector reading is an issue and
the SPTI workaround is already in place).
2016-09-19 19:50:55 +01:00
Gregory Hainaut
b91bd3ea01
gsdx dx/gl: fix potential bug in alpha test handling
...
Depth test must remain disabled if write were masked.
Bug was detected on ICO (sea/sky) but the previous commit removes
the wrong ATE draw call.
2016-09-19 08:56:49 +02:00
Gregory Hainaut
6966e08306
gsdx: move alpha test optimization in base class
...
One code for all renderers :)
2016-09-19 08:48:32 +02:00
Gregory Hainaut
38b77397e0
gsdx hw: remove custom Ty Tasmanian Tiger / Simposons OI hack
...
Replaced by the generic OI_DoubleHalfClear. If OI_DoubleHalfClear is fast/safe enough, it
will enabled by default in the future.
2016-09-18 18:50:16 +02:00
Gregory Hainaut
6558317a7e
gsdx: s/m_eq.xzyf & 4/m_eq.z/
...
Much better this way
2016-09-18 18:50:15 +02:00
Gregory Hainaut
7a40b27931
gsdx CRC: move GTA hack to full level
...
You can now emulate the radiosity effect with the UserHacks_AutoFlush hack.
2016-09-18 18:50:15 +02:00
Gregory Hainaut
0f387a8e3c
Merge pull request #1535 from PCSX2/clang-tidy-macro-parenthesis
...
clang-tidy: use parenthesis around macro parameters
2016-09-18 18:48:04 +02:00
Jonathan Li
15fbd6fbf4
cdvdgigaherz: Remove ISO file reader ( #1569 )
...
It doesn't support dual layer ISO images, and the ini has to be edited
manually so it loads an ISO image ("$" has to be prepended to the ISO
path as well). The PCSX2 internal ISO file reader is probably better in
most/all aspects and I don't think it's worth copying the logic from
PCSX2 into the plugin.
2016-09-18 18:38:21 +02:00
Gregory Hainaut
310f13a2f7
gsdx ogl: only use geometry shader to convert big enough draw call ( #1554 )
...
gsdx ogl: only use geometry shader to convert big enough draw call
The purpose of geometry shader is to reduce bandwidth (72 bytes by sprite)
and CPU load.
Unfortunately it increases CPU load due to extra shader validations.
So geometry shader will only be enabled for draw call with more than
16 sprites (arbitrarily, smallest number before shadow hearts plummet)
v2: don't disable geometry shader in replayer.
It is easier to spot sprite rendering and to manually read vertex info.
2016-09-18 16:58:02 +02:00
Gregory Hainaut
2a60264e40
gsdx replayer: improve error message when file is corrupted
2016-09-18 16:52:35 +02:00
Gregory Hainaut
6e6eae7844
pcsx2:gsdx:spu2x: use parenthesis around macro parameters
...
For safety reasons.
2016-09-18 16:13:55 +02:00
Gregory Hainaut
64d499af6e
pcsx2|spu2x: remove unused macro
2016-09-18 16:13:29 +02:00
Gregory Hainaut
b1d446895b
GSdx: replace IsTopLeftAligned macro with a function
2016-09-18 16:13:28 +02:00
Gregory Hainaut
f0a54bf6e3
spu2x: replace EMITC macro with a function
2016-09-18 16:13:28 +02:00
Gregory Hainaut
5ef2d538a0
gsdx hw: only keep a single half clear implementation
2016-09-18 13:16:59 +02:00
Gregory Hainaut
a0c1719695
gsdx hw: DoC takes 3
...
Add support for 16 bits format too. Fix shadows.
2016-09-17 12:06:43 +02:00
Gregory Hainaut
ebdf54a60b
gsdx sw: don't enable auto flush hack in replayer
...
Otherwise we don't have same number of draw call in HW/SW which is
awful to compare
2016-09-17 12:05:05 +02:00
Gregory Hainaut
3546d54e3b
gsdx hw: improve the vertical half clear for DoC
...
Previous assumption that crazyness was used to clear the buffer is wrong.
It was also used to write a constant color to the buffer.
2016-09-17 10:34:35 +02:00
Jonathan Li
4d5e051387
gsdx: Fix missing "\n" in rc file
...
It stops Visual Studio from asking to normalise the line endings
everytime the resource editor is used.
2016-09-16 23:42:54 +01:00
Jonathan Li
91b2e5bdbb
Merge pull request #1564 from FlatOutPS2/master
...
GSdx: Add Windows UI options for HW hacks
2016-09-16 23:35:45 +01:00
Gregory Hainaut
7b9654f164
gsdx hw: CRC based solution to solve half screen issue on FFVII Dirge Of Cerberus
...
The trick is that the depth buffer is actually the right of the frame buffer
2016-09-17 00:02:32 +02:00
FlatOutPS2
55b0be36cd
GSdx: Add cancel button to Hacks dialog
...
Add a cancel button to the Hacks dialog to make it easier for the user
to exit the window without making changes.
2016-09-16 23:22:13 +02:00
FlatOutPS2
5420fcaf3a
GSdx: Add Windows UI options for HW hacks
...
Add UI options for Auto Flush and Unscale Point Line HW hacks.
2016-09-16 23:19:05 +02:00
Gregory Hainaut
3994141d40
gsdx sw: always enable the auto flush hack on the SW renderer
...
There are enough option. Will remove it if too slow.
Positively impact Jak, GTA, Battlefield 2
2016-09-15 17:24:40 +02:00
Gregory Hainaut
1a1d6ab478
gsdx: handle the invalid format 0x3
...
International Super Star Soccer seems to use it.
It could be a core bug, in doubt uses the likely expected standard 0x13
2016-09-14 19:22:45 +02:00
Gregory Hainaut
4796803c33
pcsx2: Remove == true/false for boolean logic ( #1556 )
...
As discussed in #1553
Clang Tidy reports goes from 156 to 9.
Remain some macro in spu2x + a deadcode line
2016-09-10 20:08:14 +02:00
Jonathan Li
77e128aa11
Merge pull request #1557 from turtleli/freetype
...
3rdparty: Add Freetype and link to GSdx
2016-09-10 14:04:26 +01:00
Jonathan Li
72d3e4e03f
windows: Add freetype to solution and link to GSdx
2016-09-10 12:36:56 +01:00
Gregory Hainaut
4ebe739b44
pcsx2: remove various unused variable
...
Warning can be reenabled on GCC
A warning isn't fixed as potentially the code is wrong
../pcsx2/gui/MemoryCardFolder.cpp: In member function ‘void FolderMemoryCard::FlushFileEntries(u32, u32, const wxString&, MemoryCardFileMetadataReference*)’:
../pcsx2/gui/MemoryCardFolder.cpp:1027:10: warning: unused variable ‘filenameCleaned’ [-Wunused-variable]
bool filenameCleaned = FileAccessHelper::CleanMemcardFilename( cleanName );
2016-09-10 00:09:05 +02:00
Gregory Hainaut
ccf198a80b
gsdx ogl: fix a regression on Okami
...
Strangely the game uses large texture to handle texture buffer.
I think it plays with WMS/WMT. I'm not sure texture shuffling is 100%
correct here. But without it, it's completely broken.
2016-09-09 21:51:23 +02:00
Gregory Hainaut
8c1722faa2
gsdx: add a note that Jak shadows can be handled with HW GL without auto flush hack
2016-09-09 21:08:15 +02:00
Gregory Hainaut
64a97483fb
gsdx: add Jak3 US too
2016-09-09 21:05:00 +02:00
Gregory Hainaut
de480ec0f5
gsdx: add crc hack for Jak
...
* 0x9C712FF0, Jak1, EU
* 0x472E7699, Jak1, US
* 0x2479F4A9, Jak2, EU
* 0x12804727, Jak3, EU
* 0xDF659E77, JakX, EU
Please report me the CRC of the US version too so I can add them.
Please test the shadows rendering (openGL HW + accurate blending at least basic)
2016-09-09 19:44:04 +02:00
Jonathan Li
d540dbec79
cdvdgigaherz: Fix event handle memory leak
...
Also bump the version to 0.10.0.
2016-09-08 23:46:05 +01:00
Jonathan Li
303996818c
cdvdgigaherz: Delete duplicate PlainIso file
2016-09-08 23:14:26 +01:00
Gregory Hainaut
d27d2dd520
fix compilation issue
2016-09-09 00:11:02 +02:00
Gregory Hainaut
c2b67ccb78
gsdx ogl: implement an alternate shader for Jak Shadows
...
The game sets the framebuffer as an input texture. So I did the same for
openGL. Code is protected with a CRC. It is working because the game want to sample
pixels.
For the record, I tested it GTA too, it doesn't work as expected because
the game will resize the framebuffer to a smaller one. So you don't have
the guarantee that pixel will be read before a data write.
Note: it requires at least accurate blending set on basic
Note: I need CRC of all Jak games that suffers of this issue. Thanks you :)
2016-09-08 23:58:13 +02:00
Gregory Hainaut
c03b388786
Merge pull request #1551 from PCSX2/clang-format-v2
...
Clang format v2
2016-09-08 22:53:21 +02:00
Clang Format
e503534ff4
reformat CDVDiso
2016-09-08 21:54:50 +02:00
Clang Format
d6ae5bfafa
reformat lilypad
...
Note: I'm worried on the EXPORT/CALLBACK behavior on multiple OS
2016-09-08 21:54:49 +02:00
Clang Format
f06f44c30a
reformat onepad
2016-09-08 21:52:49 +02:00
Clang Format
0abf686406
pre-fomat onepad
...
Clang doesn't move back the '{' if there is a comment on the if line
2016-09-08 21:52:49 +02:00
Clang Format
1f8a0db290
reformat null plugin with pointer symbol on the right
2016-09-08 21:52:49 +02:00
Gregory Hainaut
f9d8cb97c0
Merge pull request #1508 from PCSX2/gsdx-allow-sso-amd
...
Finally AMD delivered the fix to support separate shader object !!!
2016-09-08 21:47:32 +02:00
Gregory Hainaut
6ee841319f
gsdx: help stupid compiler to allow 32 byte move
...
Default copy-constructor is eight 32 bits move
GSRendererOGL::Lines2Sprites code shrinks from 510B to 398B
(loop of the function 296B => 181B). Hopefully it will reduce the cost
to convert line to sprite on the CPU (i.e. when geometry shader is disabled)
2016-09-08 20:01:05 +02:00
Gregory Hainaut
aba0c733cd
gsdx linux: add a gui check box to control previous hack
2016-09-08 17:34:28 +02:00
Gregory Hainaut
029d74f855
gsdx: add an auto flush hack to implement a Read Write GS effect.
...
It impacts all renderers. It ought to fix issue in GTA radiosity,
Shadows in Jak series. (note shadows will suck in upscaling)
Implementation is really brutal. Expect a massive slow down, but at least we can test the effect
easily.
Normally perf impact will remain reasonable if the game doesn't use a Read-Write effect
Performances number are welcomes (my guess is really awful in HW mode, slow in SW mode).
You can enable it with "UserHacks_AutoFlush = 1"
2016-09-08 17:25:59 +02:00
Gregory Hainaut
bcb951077d
gsdx: c_str() is useless when parameter is a string
...
Reported by clang tidy
2016-09-07 22:10:50 +02:00
Gregory Hainaut
145d6e29c2
gsdx: increase the allocation of the GS memory
...
GS memory is only 4MB but rendering is allowed to be 2048x2048
with 32 bits format (so 16MB). Technically the frame/depth buffer can start
at the end of the GS memory. Let's not waste too much memory.
Fix crash with BASARAX
(game draws a 2048x1664 32 bits area)
2016-09-07 08:34:24 +02:00
Gregory Hainaut
c638e5ec87
gsdx debug: use a pretty format name when dumping texture
...
Much faster to read the format on the file name :)
+ remove a couple of useless ifdef
2016-09-07 08:34:24 +02:00
Gregory Hainaut
6abd806539
gsdx perf: print frame time distribution
2016-09-07 08:34:24 +02:00
Gregory Hainaut
244bb555f9
Merge pull request #1532 from ssakash/Coverity
...
PCSX2: Fix a bunch of coverity defects
2016-09-05 20:16:13 +02:00
Gregory Hainaut
cedc4f241d
gsdx hw: add a crc hack for Dragon Quest & Final Fantasy in Itadaki Street
...
The hack only fix the HW renderer but not the SW renderer. However I'm not sure
the issue is from GSdx.
The hack will disable alpha test that used to generate empty draw call.
2016-09-04 19:41:31 +02:00
Gregory Hainaut
bb50b3419e
Merge pull request #1542 from PCSX2/gsdx-texture-transfer-motocross
...
gsdx: save the blit buffer register when a transfer is started
2016-09-04 16:55:08 +02:00
Akash
dc874a99cd
LilyPad: Remove useless self assignment
...
CID 146888 (#1 of 1): Self assignment (NO_EFFECT)self_assign: Assignment
operation (this->devices[i]->virtualControls + j).uid =
(this->devices[i]->virtualControls + j).uid has no effect.
2016-09-03 20:29:46 +05:30
Gregory Hainaut
52a2bb5524
gsdx ogl: disable texture shuffle when a render a basic sprite
...
Fix shadow issue on "Shadow of Memories"
2016-09-03 12:18:52 +02:00
Gregory Hainaut
79209c31bf
gsdx ogl: avoid bad logging of framebuffer/texture overlap
2016-09-03 12:18:51 +02:00
Jonathan Li
4d10eda308
Merge pull request #1545 from turtleli/cdvd-spti
...
cdvdgigaherz: Use SPTI to read raw CD sectors
2016-09-02 23:56:05 +01:00
Gregory Hainaut
a123e65185
gsdx sw: handle the invalidation of the palette when written by the GS
...
Manual gives all setup to upload a palette from the host. But nothing forbid to render
directly in the palette buffer. (GS rule nb 1, there is no rule ^^)
Fix Virtua Fighter 2 dark colors
However I'm not sure we can fix HW renderer. Rendering is done on the GPU but palette
handling is done on the CPU... So we need to read back data (ouch, and slow). A quick
test didn't get the expected results. Potentially there are others bugs (aka not gonna
happen on the HW renderer)
2016-09-03 00:21:56 +02:00
Gregory Hainaut
d01194da0b
gsdx sw: help debug
...
* quick way to disable verbose fixed tex0
* use palette address/format when the palette is dumped :)
2016-09-03 00:10:23 +02:00
Gregory Hainaut
6323268f40
gsdx tc: reset dirty alpha flag when we lookup a frame
...
Fix black skin regression for haunting ground (at least on my gs dump)
2016-09-02 21:31:13 +02:00
Jonathan Li
3d8be787a2
cdvdgigaherz: Use SPTI to read raw CD sectors
...
IOCTL_CDROM_RAW_READ apparently does not work for some read modes on
some optical drives, which makes some CD-ROM games unplayable from the
disc.
Work around the issue by using SPTI to retrieve the raw sector data. The
old reading method has been retained in case SPTI cannot be used (if the
device could not be opened with write access).
2016-09-02 00:58:38 +01:00
Gregory Hainaut
c9a1558c60
gsdx: save the blit buffer register when a transfer is started
...
Fix motocross mania missing texture. Close #1319
As far as I understand, transfer is initialized in DIR. But the real
write only occured later so the blit buffer could have been overwritten
by a new value.
BLIT 0 13700
TREG 40 40
DIR 0 0
BLIT 0 13f00 <=== the bad guy
Write! ... => 0x3f00 W:1 F:C_32 (DIR 00), dPos(0 0) size(64 64)
v2: set a value in m_tr.m_blit for load state
2016-09-01 09:59:38 +02:00
Gregory Hainaut
b546d096bd
Finally AMD delivered the fix to support separate shader object !!!
...
v2: blacklist AMD driver from the start of 2016
Please note that it is highly recommended to upgrade to a stable&working driver
2016-09-01 09:47:57 +02:00
Gregory Hainaut
448fee76c1
gsdx ogl: move GS setup in SetupIA
...
Fix regression when geometry shader is disabled
2016-09-01 09:47:46 +02:00
Gregory Hainaut
165bcf5662
Merge pull request #1539 from FlatOutPS2/DX
...
GSdx DX: extend ATE to better support additional corner case DX port
2016-08-29 11:39:22 +02:00
Gregory Hainaut
19a9d639b1
Merge pull request #1538 from PCSX2/gsdx-improved-ate
...
gsdx ogl: extend ATE to better support additional corner case (issue …
2016-08-29 11:38:57 +02:00
Gregory Hainaut
da688114f4
Merge pull request #1522 from PCSX2/gsdx-issue-1438
...
gsdx tc: don't partially invalidate small target
2016-08-28 16:51:25 +02:00
Gregory Hainaut
e4337b6631
glsl2h: add input files in the header
...
Close #1404
2016-08-28 16:31:35 +02:00
Gregory Hainaut
a1cdf7189a
gsdx tc: don't partially invalidate small target
...
It creates a regression on game that uses a small temporary target to
upload textures of various sizes. Inital code was done to handle direct
frame write (background, FMV) so big target
2016-08-28 16:24:02 +02:00
FlatOutPS2
e5c6b2e952
GSdx DX: extend ATE to better support additional corner case DX port
...
Port for Direct3D renderers of PR #1538 .
2016-08-28 15:13:15 +02:00
Gregory Hainaut
7103707aeb
gsdx: new linux option linear_present
...
Purpose is to control the filtering when final image is displayed on the screen
Could improve the sharpness of the output in some games (ofc, it will be pixelated)
2016-08-27 19:23:12 +02:00
Gregory Hainaut
2b925e0103
gsdx ogl: extend ATE to better support additional corner case (issue #1499 )
...
When depth primitive is constant and depth test is greater or equal, we can
execute the depth write after color (depth status will only depends on the initial
value)
New case for RGB_ONLY ate:
If the blending equation uses a fixed alpha or a source alpha. We can postpone the alpha write
in a 2nd pass.
If depth can also be postponed, we can guarantee the order of correctness of the value.
1st pass => do RGB
2nd pass => do Alpha & Depth
It fixed Stuntman letter rendering :) Remaining of the game is still broken :(
2016-08-27 14:46:10 +02:00
Gregory Hainaut
b6693c4345
gsdx dx/gl: fix depth optimization
...
4th bit is the fog value, not the depth
2016-08-27 13:57:39 +02:00
Gregory Hainaut
411a25b610
Merge pull request #1531 from PCSX2/clang-tidy-empty-instead-of-size
...
pcsx2|common|gsdx: use empty() instead of .size() ==/!= 0 check
2016-08-26 10:05:01 +02:00
Gregory Hainaut
601c828562
Merge pull request #1530 from PCSX2/clang-format-plugin-v1
...
Clang format plugin v1
2016-08-26 10:04:52 +02:00
Gregory Hainaut
5a1cb00a07
Merge pull request #1517 from FlatOutPS2/DX
...
Gsdx alpha test improvement DX
2016-08-25 09:25:19 +02:00
Clang Format
eb18a2ac0f
PADnull reformat
2016-08-25 00:16:29 +02:00
Clang Format
6613862aed
CDVDnull reformat
2016-08-25 00:16:25 +02:00
Clang Format
25b0b63216
GSnull reformat
2016-08-25 00:16:21 +02:00
Clang Format
e61d14168a
dev9null reformat
2016-08-25 00:16:15 +02:00
Clang Format
e3a2ad03bc
SPU2null reformat
2016-08-25 00:16:11 +02:00
Clang Format
67e7d63f0f
FWnull reformat
2016-08-25 00:16:07 +02:00
Clang Format
b246d13bae
USBnull reformat
2016-08-25 00:16:00 +02:00
Gregory Hainaut
1fb2c66a21
gsdx ogl: Unscale line
...
Line thickness will be increased to N pixels (N is the upscaling factor).
Code will also be enabled by UserHacks_unscale_point_line = 1
2016-08-22 18:18:12 +02:00
Gregory Hainaut
018895067b
gsdx ogl: restore code to unscale point
...
enabled by UserHacks_unscale_point_line = 1
Point will be transformed into a NxN square sprite. (N is the upscaling factor)
2016-08-22 18:18:12 +02:00
Gregory Hainaut
1a8825b374
pcsx2|common|gsdx: use empty() instead of .size() ==/!= 0 check
...
Enhance readability reported by clang tidy
2016-08-21 17:20:13 +02:00
Gregory Hainaut
8ee2d3d367
gsdx: use static assert when possible
...
reported by clang tidy
2016-08-21 15:22:09 +02:00
Jonathan Li
2b2042e1c2
gsdx: Allow screenshot compression level to be changed
...
At higher resolutions it takes too much time to save a screenshot at the
maximum compression level. So let's allow the user to set the
compression level.
This re-uses the png_compression_level setting. The default compression
level is 1 for speed, but if the user wishes to increase the compression
level (without using an external tool) and doesn't mind if the
screenshot takes more time to save then they can increase the
compression level up to a maximum of 9 (which can take quite a while).
Fixes #1527 .
2016-08-20 14:01:24 +01:00
Gregory Hainaut
d6b834e8af
gsdx hw: don't execute blit fmv with target
...
Avoid invalid operation due to depth buffer
2016-08-20 12:56:30 +02:00
Gregory Hainaut
fa826b3167
gsdx tc: check compatible bit when wrote in middle of target
...
All maths are wrong otherwise. Fix half screen issue in WRC
2016-08-20 11:57:15 +02:00
Gregory Hainaut
a49b3c9bf6
gsdx tc: log more stuff on texture cache dirty & frame format
2016-08-20 11:52:22 +02:00
FlatOutPS2
87eed3965e
GSDx GSRendererDX code improvement
...
Replace local copies context and env with m_ prefix originals.
2016-08-19 16:02:49 +02: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
Gregory Hainaut
765b68458a
gsdx: improve logging
...
Don't enable UpdateValidity print by default (+20~25% on log size)
Only useful in rare cases
2016-08-17 21:23:06 +02:00
Gregory Hainaut
19ceea4f1e
Merge branch 'strict-aliasing'
2016-08-17 18:53:08 +02:00
Jonathan Li
d36002a02a
gsdx:cmake: Use PNG_LIBRARIES instead of PNG_LIBRARY
...
PNG_LIBRARIES adds both libpng and zlib to the command line.
PNG_LIBRARY only adds libpng to the linker command line, and the cmake
documentation also suggests not to use it.
2016-08-16 20:35:21 +01:00
Gregory Hainaut
fa249a3f78
gsdx ogl: don't rely on the Z value in m_vt
...
Value seems wrongly rounded and you can't distinguish 0xFFFF from 0xFFFE
Instead check that depth is constant for the draw call and the value from the vertex buffer
Fix recent regression on GTA (and likely various games)
2016-08-16 07:30:52 +02:00
Gregory Hainaut
5c7e2432bd
gsdx-ogl: improve alpha test for GTA vice city (letters)
...
I don't understand why but it seems depth is rounded down even in 16 bits.
So uses 0xFFFE to enable ate_all_color_then_depth in 16 bits format too :)
2016-08-15 11:38:07 +02:00
Gregory Hainaut
5fbf702500
gsdx ogl: new optimization to bypass the alpha test
...
In FB_ONLY mode the alpha test impacts (discard) only the depth value.
If there is no depth buffer, we don't care about depth write. So alpha
test is useless and we can do the draw with a single draw call and no program
switch
2016-08-15 11:35:24 +02:00
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
0417a10483
gsdx: allow strict aliasing optimization
2016-08-14 21:01:40 +02:00
Gregory Hainaut
2e7fab7813
gsdx sw: avoid aliasing issue, clear function was wrong anyway
...
Value must be un-normalized. Function is only used with 0.0 so
API was updated to only use the 0 case.
2016-08-14 21:01:09 +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
f38cd9d80d
onepad: add a missing break when CMD_CONFIG_MODE is true but configuration isn't enabled.
...
I hope it wasn't done on purpose.
CID 168624 (#1 of 1): Missing break in switch (MISSING_BREAK)
unterminated_case: The case for value CMD_CONFIG_MODE is not terminated by a 'break' statement.
2016-08-12 22:55:19 +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
39bf84a13c
onepad: don't duplicate the "GamePad" base class code/member in the "JoystickInfo" derivated class
2016-08-12 22:37:37 +02:00
Gregory Hainaut
2d8a0dc59c
onepad: fix a couple of ccpcheck warning
...
Yes I know formating suck
2016-08-12 22:36: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
5ad4cbace7
onepad|common: fix GCC warning type limit
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
0b86aad059
spu2x sdl: increase the number of samples
...
Avoid alsa error "buffer underrun"
2016-08-09 11:38:25 +02:00
Jonathan Li
5d6f9a316a
cdvdgigaherz: Use null for event/thread handle init
...
CreateEvent and CreateThread return NULL on failure, not
INVALID_HANDLE_VALUE. This should have been done in
0477e03965
, I didn't check thoroughly
enough.
2016-08-08 22:34:58 +01: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
0477e03965
cdvdgigaherz: Fix CreateEvent/CreateThread return value checks
...
CreateEvent and CreateThread return NULL on failure, not
INVALID_HANDLE_VALUE.
Spotted using Visual Studio Code Analysis Tools (Warning C6387)
2016-08-05 00:30:25 +01:00
Jonathan Li
a8286e7458
cdvdgigaherz: Remove unused variables
2016-08-04 23:46:26 +01:00
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
ac9f2ed284
lilypad: fix the gcc warning take 3
...
Signed vs non-signed comparison
2016-08-03 18:06:27 +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
4eda5fb924
Revert "lilypad: use size_t instead of int for num* variable"
...
This reverts commit 87d73684fa
.
Will do something that work ;)
close #1498
2016-08-02 22:40:03 +02: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
Gregory Hainaut
87d73684fa
lilypad: use size_t instead of int for num* variable
...
Fix noisy GCC warning: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
2016-08-02 15:29:38 +02:00
Gregory Hainaut
f19da94bfd
Merge pull request #1476 from PCSX2/onepad-input-state
...
onepad 1.3: import lilypad state machine into onepad
2016-08-02 15:01:42 +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
Gregory Hainaut
76f38d3da0
onepad: fix ICC compilation warning
2016-07-28 10:48:43 +02:00
Gregory Hainaut
d714a2a393
lilypad: fix compilation on ICC
2016-07-28 10:46:40 +02:00
Gregory Hainaut
48c4d54a6c
onepad: support load/save state for the plugin
...
close #205
close #1375
close #1465
v2: don't bump PCSX2 savestate version
2016-07-28 09:48:44 +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
62aff1f2a1
onepad 1.3: import lilypad state machine into onepad
...
Not tested
* rumble
Save/load state will be implemented in the next commit
v2:
* Print current deteced pad mode
* fix dpad button tranmission
close #366
2016-07-27 08:55:27 +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
Gregory Hainaut
20aee23edc
onepad: fix gcc warning
...
warning: comparison between signed and unsigned integer expressions
2016-07-26 09:27:57 +02:00