Commit Graph

9686 Commits

Author SHA1 Message Date
Gregory Hainaut 87cf7b6d30 gsdx tc: implement a safe RemoveAt
The code is now a mirror of the ::add. So 1 insert == 1 erase

This way it won't crash on future update. And it will support future GS
memory wrapping improvement.
2017-01-15 20:11:34 +01:00
Gregory Hainaut d1315b6187 gsdx tc: save list iterator to allow fast removal
ZoE2:
RemoveAt overhead plummet to 0.5%. It was 17% !

However insertion is a bit slower. Due to the begin() after the push_front

v2: use std:: for lists and arrays
2017-01-15 20:11:34 +01:00
Gregory Hainaut 87fc4c1e44 gsdx tc: skip draw call when input texture can't be fetched
Avoid garbage on Full Spectrum Warrior
2017-01-15 20:09:39 +01:00
Gregory Hainaut 2f972b91a3 gsdx tc: allow a hit on older depth buffer
Avoid an issue when rendering take some shortcut (Full Spectrum Warrior)

Close #1757
2017-01-15 20:09:39 +01:00
FlatOutPS2 3acac3203b GSdx: Remove/move CRC hacks
Removes Alpine Racer 3 hack. Issue has been resolved.

Moves NanoBreaker hack. Issue has been resolved for OpenGL and hack has
been moved to DX only.

Moves Tri-Ace games hacks. Hacks are also necessary for OpenGL with "Partial" CRC Hack Level to prevent massive slowdown.

Move Tales Of Legendia hack back as it's also necessary for OpenGL with "Partial" CRC Hack Level to prevent graphical issues.
Close: https://github.com/PCSX2/pcsx2/issues/1698

Added PAL and NTSC-U CRC's for Ar tonelico II.
2017-01-15 20:07:10 +01:00
Jonathan Li 52ec143a92 gsdx:windows: Fix deprecated ATL attributes warning 2017-01-13 23:52:25 +00:00
Jonathan Li fe1947ea48 gsdx: Fix minor user visible typos
Well. it should be better; but my grammar is questionable at times,
2017-01-13 23:52:02 +00:00
Gregory Hainaut 696510d220 Merge pull request #1763 from guoyunhe/patch-1
Translate Simple Chinese in .desktop file
2017-01-12 14:44:42 +01:00
Guo Yunhe f5e6c82e86 Translate Simple Chinese in .desktop file
Add Simple Chinese translation in .desktop file
Change "Playstation" to "PlayStation". (Official name)
2017-01-12 13:32:59 +02:00
Gregory Hainaut 8cf3a83dd7 gsdx: try to ask GCC to generate not dumb code
Unfortunately it requires at least GCC6. If a nice guy can check the generated code on GCC6.
I don't know clang status.

Here the only example, I have found on the web
https://developers.redhat.com/blog/2016/02/25/new-asm-flags-feature-for-x86-in-gcc-6/

Current generated code in GSTextureCache::SourceMap::Add

    38b3:	bsf    eax,esi
    38b6:	add    esp,0x10
    38b9:	test   esi,esi
    38bb:	jne    387e <GSTextureCache::SourceMap::Add(GSTextureCache::Source*, GIFRegTEX0 const&, GSOffset*)+0x6e>

BSF already set the Z flag when input (esi) is 0. So it would be better
to not put a silly add before the jump and to skip the test operation.
2017-01-11 21:36:05 +01:00
Gregory Hainaut 1fbee92044 gsdx tc: add a comment for a potential "ASM" optimization
I'm not sure it worth it yet. But a generic function would be nice for
future.
2017-01-11 20:13:53 +01:00
Gregory Hainaut ced2dd9200 gsdx: hidden option disable_hw_gl_draw
OMG, Zone of Ender got a speed boost from 11 fps to 45 fps

Seriously, the goal is to allow benchmarking GSdx without too much overhead of the main renderer draw call

Note: unlike the null renderer, texture/vertex uploading, 2D draw, texture conversions are still done.
2017-01-11 18:54:36 +01:00
Gregory Hainaut 6dabc68c16 gsdx linux gui: compact the GUI for Nx768 display (seriously guy it is time to upgrade !)
* move the post-processing frame into the OSD tab
* Rename Global Settings to Renderer Settings
* put monitor and indicator check box on the same line

At least we have a similar number of options by tab
2017-01-11 18:32:02 +01:00
Gregory Hainaut f5fbfe98bd gsdx: fix warning: variable ‘success’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered] 2017-01-11 18:23:34 +01:00
Jonathan Li 62c21fd58f i10n: Update pt_BR (Brazilian Portuguese) .mo files 2017-01-10 21:11:15 +00:00
Jonathan Li 791dc84d49 gsdx:gtk: Update GUI
Set slider ranges to 0-100, which matches what Windows uses.
Add OSD maximum log messages option and tooltips.
2017-01-10 20:47:33 +00:00
FlatOutPS2 6a7c38f30d GSdx: Minor update to GS Settings Dialog
Update a few parts of the GS Shader dialog to reflect the improvements
from the OSD dialog code.
2017-01-10 20:07:29 +00:00
FlatOutPS2 da57014eb8 GSdx OSD: Add Windows UI and new option
Adds Windows UI and option to limit the amount of log messages on the
screen at the same time/in the buffer.
2017-01-10 20:07:29 +00:00
FlatOutPS2 d42759c641 GSdx OSD: Minor log improvements 2017-01-10 20:07:29 +00:00
Gregory Hainaut 83b5bdbd29 Merge pull request #1753 from josephgbr/master
Update Brazilian Portuguese translation
2017-01-10 11:46:48 +01:00
refractionpcsx2 b02cc6ecbe Whoops, over zealous with removing things. 2017-01-09 22:37:15 +00:00
refractionpcsx2 b0baa8d8f9 Revert CLUT change, seems it causes more problems than it solves. Leaving the comment for future investigation 2017-01-09 22:30:54 +00:00
Rafael Fontenelle fcdc3a4745 Update Brazilian Portuguese translation 2017-01-09 09:53:02 -02:00
Gregory Hainaut 7c4a952ee0 Revert "gsdx tc: always clear a new depth buffer"
This reverts commit f77c1900fa.

Conflicts:
	plugins/GSdx/GSTextureCache.cpp

Another fix was done later for Jak cut scene (or FMV). One game got a regression (don't remember which)
2017-01-09 10:21:23 +01:00
Gregory Hainaut 3fab287e8d onepad: don't load joyid_map from the ini
Old option from the older GUI can cause issue.

Close #1139
2017-01-07 16:38:13 +01:00
Gregory Hainaut 5c6d10da96 i10n: remove build file 2017-01-07 16:02:15 +01:00
Jonathan Li 285bcbcec0 vifUnpack: Report the correct number of bytes
It now reports 6904 bytes instead of just less than 4GB.
2017-01-07 14:49:33 +00:00
Jonathan Li c2e21fa30e gsdx: Don't use atomic for exit variable
All accesses are protected by locks, so there's no need for it to be
atomic.
2017-01-07 13:54:45 +01:00
Jonathan Li cb2c9ce4e6 gsdx: Don't use separate count variable
It's only ever updated after the queue is updated, so its state will
always lag slightly behind it. It's sufficient to just use empty().

This seems to fix some caching issues that were noticeable on Skylake
CPUs (#998).
2017-01-07 13:54:45 +01:00
Jonathan Li a583fafa37 gsdx: Use lock instead of loop to terminate threads 2017-01-07 13:54:45 +01:00
Jonathan Li b244de73ca gsdx: Use separate mutex for waiting
In the previous code, the worker thread would notify the MTGS thread
while the mutex is still locked, which could cause the MTGS thread to
wake up and immediately go back to sleep again since it can't lock the
mutex.

Use a separate mutex for waiting, which avoids the issue.
2017-01-07 13:54:45 +01:00
Gregory Hainaut 93471d46df build: workaround to detect freetype on my Debian system
I don't know if recent Cmake/Debian work better.
2017-01-07 13:49:56 +01:00
Gregory Hainaut 648cc2bb39 Merge pull request #1693 from ssakash/framebuff
GSDX: Pass total height of framebuffer on GetOutput()
2017-01-07 13:48:35 +01:00
ramapcsx2 80be9d92ca Merge pull request #1709 from turtleli/cdvd-street-fighter-ex3
cdvd: Street Fighter EX3 (NTSC-J) black screen fix.
2017-01-06 22:21:03 +01:00
Akash 09c72375ab GSDX: Pass total height of framebuffer on GetOutput()
Some PSX games seem to store image data of the drawing results in an undeterminate area out of range from the current context buffer. At such cases, calculate the height of both the frame memory rectangles combined.

What happens on "Crash bash" -

* At first draw, scissoring is limited to SCAY0- 0 & SCAY1- 255
* At second draw, scissoring is limited to SCAY0- 255 & SCAY0-511

Previously, we limited the height to the value of one single output texture, so instead of that let's calculate the total height of both the two buffers combined to prevent such issues.
2017-01-04 22:17:26 +05:30
refractionpcsx2 98e8d93fa3 Merge pull request #1728 from ssakash/custom_regression
GSDX-TextureCache: Fix corner cases on custom resolution scaling
2017-01-04 16:21:18 +00:00
Gregory Hainaut ecd00d377a Merge pull request #1729 from np511/master
Extend LTO support and remove warnings
2017-01-04 17:03:38 +01:00
np511 f55f3b94a1 Removes LTO warnings and sets -flto=number of cores. 2017-01-03 15:45:24 -05:00
Jason Brown fce2814735 Added callbacks for OSD Log and Monitor. Added wrappers in PCSX2 main for callbacks. Added some basic info calls (e.g. Saving loading FPS) 2017-01-03 10:43:56 +01:00
Jason Brown 44e671bb0a Add an RGBA getter for ConsoleColors 2017-01-03 10:43:56 +01:00
Jason Brown 248ad0ddde Added config page to linux setting dialog 2017-01-03 10:43:56 +01:00
Jason Brown b8a84d170a Added OSD Manager which depends on FreeType2. Added functions into GSDeviceOGL to render OSD and a point shader. 2017-01-03 10:43:56 +01:00
Jason Brown 4c084391fc Changed the GSBufferOGL interface from map and upload to map and unmap. This allows rendering directly into the OGL buffer instead of having to do copy at some point. 2017-01-03 10:43:56 +01:00
Gregory Hainaut b87881c91b Merge pull request #1735 from FlatOutPS2/W
GSdx: Prevent FMV crash
2017-01-03 10:36:29 +01:00
FlatOutPS2 048b657c8f GSdx: Prevent FMV crash
Fixes FMV crashing PCSX2 in The Simpsons: Road Rage.
2017-01-03 00:46:38 +01:00
Akash 6c521c36dd GSdx-TC: Remove some old hacks
Previously, we only calculated the width of a single output circuit which lead to missing a single pixel from the other output circuit which in turn causes offset issues in Persona games, I have customized GetDisplayRect() to now also calculate the dimensions of the merged rectangle when both the output circuits are enabled through the PMODE register, so this hack is no longer needed. :)

TL;DR - The above commit of mine accurately handles the offset issues by calculating union of the rects, removing this stupid hack. (not insulting any other developers, this stupid hack was mine :)
2017-01-02 14:43:17 +05:30
Akash b56ff3fce7 GSDX-TC: Pass merged output size for scaling
Passes the merged output circuit as the base size for texture cache scaling code. Helps fixing scaling issues where games use both of the output circuits for rendering.

Future Note: Alter the behavior of IsEnabled() check always preferring the second output circuit for some weird reason. I plan on changing it to a better auto-output circuit selection mechanism but that could probably be done some time in the future.
2017-01-02 14:42:32 +05:30
Gregory Hainaut 9d1b27cde8 miss a ;
I don't know what I compiled for my previous push !
2016-12-31 17:42:38 +01:00
Gregory Hainaut 1be3f48017 gsdx sw: minor fix on the thread management
* Upgrade the counter to signed 32 bits. 16 bits is too small to contains the 64K value.
* Read ThreadProc/m_count when the mutex is locked
* Use old value of the fetch instead to read back the new value
2016-12-31 16:59:38 +01:00
Gregory Hainaut 14a76a8499 cmake: don't use SSE2 suffix on libgsdx.so file
In debug build, SIMD is disabled, so it is dangerous (use wrong binary) to debug
2016-12-31 13:37:43 +01:00