Commit Graph

2689 Commits

Author SHA1 Message Date
Akash 5f449151a1 GSDX: Add missing grayouts to Shadeboost options
The shadeboost options text (Contrast, Brightness, Saturation) were not
grayed out when shadeboost was disabled, it was sort of inconsistent
compared to the behavior of external shader, so added grayouts to them
when shadeboost is disabled.

Also changed "OpenGL Very Advanced Custom Settings" to "OpenGL Advanced
Settings", the verbosity didn't help much in my opinion.
2017-05-07 19:31:37 +01:00
Gregory Hainaut dc00af8829 psx|spu2x|gsdx: shift negative value is undefined in C standard
Instead does the negation after the shift

v2: assert shift <= 15 in clamp_mix
2017-04-30 21:20:23 +02:00
Gregory Hainaut d9e43b5d8d gsdx egl: rewrite the EGL implementation
Split code in 2 parts
* Base class (GSWndEGL) that implement the core EGL and GL context
* Derived class (GSWndEGL_X11/GSWndEGL_WL) that implement the backend to handle native resources

Note: Most backend code is only useful for GSopen1/PS1 mode. GSopen2 only requires
the AttachNativeWindow implementation

Code is based around EGL_EXT_platform extension that allow to select the platform at runtime.
Note: I think the extension was integrated in EGL 1.5

The X11 backend was mostly converted to XCB
The wayland backend is only a placeholder for future code

I don't know if MS windows is/could be supported with EGL_EXT_platform API

Code validated on Mesa. Proprietary drivers aren't yet tested.
2017-04-30 14:04:24 +02:00
Jonathan Li a3b3b4f657 gsdx: Fix uptr size on Windows x64 build 2017-04-29 23:22:02 +01:00
Gregory Hainaut 413d1828eb gsdx: call XInitThread on Linux dump replay 2017-04-29 13:05:28 +02:00
Gregory Hainaut 41990a6402 cmake: create the macro add_custom_glib_res to handle resources 2017-04-28 11:27:19 +02:00
lightningterror 303564fd70 GSdx: Move/add GT4 CRC
Moved a CRC hack to Aggressive that can cause or fix VRAM and RAM spikes.
This way people can switch between each config if they experience problems with either.
Varies on userconfig , game version and maybe hardware.

Added missing CRC game version for GT4 pal.

Note: The issue might be the same on GT3 and GTConcept , the code might
need to be removed for those games as well.
2017-04-27 17:46:58 +02:00
Gregory Hainaut bb35261aca gsdx: don't request a depth buffer on the window
Code directly uses depth buffer attached to a frame buffer
2017-04-23 10:59:33 +02:00
Gregory Hainaut 2155f65478 gsdx: fix EGL build 2017-04-23 10:59:33 +02:00
FlatOutPS2 47c2f0a289 GSdx: Remove Dirge Of Cerberus CRC hack
Hack was used to remove garbage data rectangles from popping up on screen when objects and characters were added to or removed from the world.
This issue is now being handled by OI_DoubleHalfClear in GSRendererHW.cpp, so the hack is no longe necessary and has been removed.
2017-04-21 11:13:27 +02:00
FlatOutPS2 7392f52184 GSdx: Move Resident Evil 4 and The Getaway series CRC hacks
Moves Resident Evil 4 hack to Aggressive level as it is no longer
required to fix any issues, but does offer a decent speed boost.

Moves The Getaway & The Getaway Black Monday CRC hack to Full level, as the issue can be resolved
when using the OpenGL Hardware renderer.
2017-04-21 11:13:27 +02:00
Gregory Hainaut 688f05ff26 gsdx sw: always enable the gs memory wrapping emulation 2017-04-21 10:53:05 +02:00
Gregory Hainaut 24eb1627e5 gsdx: add GStempdir wrapper to get a tempory directory
Allow to use Linux compatible code for OpenCL
2017-04-12 18:39:11 +02:00
Gregory Hainaut 2b30e7880e gsdx: add GSmkdir for windows based on CreateDirectory
v2: use nullptr
2017-04-12 18:39:11 +02:00
Gregory Hainaut 2d0a61fc8d gsdx ogl: use load resource to load shader
* Windows behavior must be checked
* remove glsl_source.h

v2: fix missing include
Big thanks to Turtleli

v3:
fix indentation in gsdx-res.xml
add dependency in cmake
remove old res/glsl/fxaa.fx symlink
add tfx.cl for OpenCL support on Linux

v4, v5
fix cmake indentation
2017-04-12 18:09:06 +02:00
Gregory Hainaut 38c4f5b6e7 gsdx: always NULL terminate resources on Windows
It is done automatically on Linux. Strings are much
better with this NULL char ;)

All credits go to turtleli

v2: increase resize instead of push_back NULL char
2017-04-12 18:09:06 +02:00
Gregory Hainaut ebae8b65f8 gsdx linux: implement GSdxApp::LoadResource based on g_resource
v2: use early return to reduce code/branch complexity
v3: use nullptr
2017-04-12 18:09:06 +02:00
Gregory Hainaut 1cbade511d gsdx: use vector of char as shader container
It will avoid various char cast on Linux.

v2:
remove cast on windows file and std prefix shader vector
v3:
forget to remove some char cast
2017-04-12 18:09:06 +02:00
Gregory Hainaut e91194994f gsdx ogl: remove useless glx/egl context print 2017-04-09 12:59:08 +02:00
Gregory Hainaut dad4ab1980 gsdx ogl: Deleted objects are automatically unbound/unmapped 2017-04-08 14:40:54 +02:00
Gregory Hainaut 12d2c6be56 gsdx linux gui: align gui with wndows (tooltip + checkbox)
add checkboxes for the 2 "new" hacks
    Wrap gs memory & merge postprocessing sprite

add tooltip for OpenGL options

v2: based on turtleli feedback
use gtk_scrolled_window_set_propagate_natural_height on GTK 3.22+
use the nicer GTK_CHECK_VERSION macro
2017-04-07 23:06:29 +02:00
Gregory Hainaut 83d83b9add gsdx linux gui: reduce height on/for small screen
* Remove the logo
* add a scroll on the osd panel
2017-04-07 23:06:29 +02:00
lightningterror 820919c0a9 GSdx ogl sw: Move GL_ARB_copy_image to optional
Move GL_ARB_copy_image to optional for OpenGL SW render.
It will allow Ivy Bridge to work with OpenGL SW as it's not required.

Sandy Bridge is not yet tested , would be nice if someone could test.
2017-04-06 18:14:59 +02:00
Gregory Hainaut ad63c13cd1 gsdx sw: Update comment on the GCC bug
Add link to bugzilla. Bug will be fixed in GCC7

Close #1881
2017-04-04 19:04:21 +02:00
Gregory Hainaut 5b91dc45e0 gsdx ogl: reduce requirement for SW renderer
Clip Control is only used for the HW renderer.

It will help Nvidia DX10 GPU on Windows. Potentially old AMD GPU too.
Unfortunately Ivy bridge still misses texture copy

Note on Linux, you can use the free Mesa driver.

Otherwise, it is time to save money for a future upgrade :)
2017-04-04 18:37:26 +02:00
Gregory Hainaut df32564bef gsdx: workaround AVX2 generated code by GCC
See commit for the full details.

v2: use a direct access to the union field instead of extract32
It gives us both optimal and working code.
2017-04-01 14:05:40 +02:00
FlatOutPS2 82405982f7 GSdx: Add merge sprite hack to GSdx hacks dialog
Adds merge sprite hack to GSDx hacks dialog

And ports merge sprite hack to Direct3D renderers.
Special thanks to my keyboards Ctrl, c and v buttons for all their hard
work in porting this hack.
2017-04-01 11:16:25 +02:00
FlatOutPS2 557b672232 GSdx: Unscale Point and Line Direct3D11 port
Ports the "Unscale Point and Line" hack to the Direct3D11 Hardware renderer.

And enables the "Unscale Point and Line" hack for Custom Resolutions with Direct3D11 and OpenGL.
2017-04-01 11:16:25 +02:00
FlatOutPS2 117c249595 GSdx: Add Windows GUI for split texture filtering option
Adds Windows GUI elements of the split texture filtering options.

Bilinear Texture Filtering is moved to the top section of the main GSdx window,
and Trilinear Filtering is moved to Hacks.
2017-04-01 11:16:25 +02:00
FlatOutPS2 cb0a430aa4 GSdx: Shader & OSD window update
Adds Texture Filtering Of Display option to the Shader dialog window Windows UI.

Updates the layouts of the Shader and OSD dialog windows to more closely resemble the Linux GUI.
2017-04-01 11:16:25 +02:00
FlatOutPS2 df5278df72 GSdx: Main & Hacks window update
Reorganizes Hacks dialog window.

Adds UI elements for the Memory Wrapping and HPO v2/Special commits

Adds advanced OpenGL functions "Geometry Shader" and "Image Load Store" to the Windows UI.

Renames "Configure Hacks" to "Advanced Settings and Hacks", to more closely resemble the Linux GUI.
2017-04-01 11:16:25 +02:00
FlatOutPS2 975441dfe9 GSdx: Direct3D port of HPO special/V2
Adds a port of the new Half-pixel Offset options for the Direct3D
Hardware renderers.
2017-04-01 11:16:25 +02:00
FlatOutPS2 2d591182c4 GSdx: Memory Wrapping Windows port
Adds GS Memory Wrapping hack to Windows. Enabling the hack will fix cut-off cutscenes in Wallace & Gromit: The Curse of the Were-Rabbit and Thrillville.
2017-04-01 11:16:25 +02:00
Gregory Hainaut 41fb11d846 gsdx: cpu detection take 3! Don't use 64 bits type in Xbyak::Cpu
Recent GCC uses SSE4/AVX code to optimize the 64 bits operation.
It is bad idea as it would generate an illegal instruction on
older CPU.
2017-04-01 11:14:18 +02:00
FlatOutPS2 82ad1392ef GSdx: Move Ace Combat 4 CRC hack to aggressive level and fix spelling issues
Ace Combat 4 CRC hack removes clouds for a good speed boost, which removes both 3D clouds(invisible with Hardware renderers, but cause slowdown) and 2D background clouds.
Removes blur from player airplane.
This hack also removes rockets, shows explosions(invisible without CRC hack) as garbage data, causes flickering issues with the HUD, and in some (night) missions removes the HUD altogether.
The CRC hack has been moved to the aggressive level.

Aggressive is misspeled several times in the file, this has been adressed.
2017-03-31 23:36:35 +02:00
Jonathan Li 815ac8be04 gsdx:cmake: Fix logo dependency issue
Changes to the dependencies of the generated logo files did not trigger
a rebuild of the files. Use add_custom_command instead of
execute_process so build dependencies can be specified.

Also prevent the generated files from polluting the source directory.
2017-03-30 22:55:34 +01:00
Jonathan Li ba94643f0f gsdx:linux: Fix missing logo on some Linux distros
The pixdata format loader has been removed from recent versions of
gdk2-pixbuf, so the logo doesn't load. Avoid preprocessing the data and
leave the logo as an embedded bitmap file.
2017-03-30 17:45:49 +01:00
Jonathan Li ae73356ecf gsdx: Avoid const strings in header file
This prevents each .cpp file that included stdafx.h (IOW everything)
from having its own copy of the strings.
2017-03-30 01:10:48 +01:00
Akash 38c2de3ae3 GSdx-PCRTC: Minor modification to NTSC saturation
Allow the output circuit saturation to take place at cases where one of the output circuit is enabled with frame mode rendering, I'm not sure it would be safe to allow saturations when both of the output circuits are enabled with frame mode rendering. Unlike field mode rendering, frame mode doesn't use identical rectangles at same co-ordinates for output in two alternating fields and potentially they could use a much bigger output size when both of the output circuits are enabled and are separated without any intersection. So let's limit the saturation to only the cases where we detect a single output circuit for frame mode rendering.

Fixes a regression in Devil May Cry 3 and Sky Gunner.
2017-03-29 19:37:44 +02:00
willkuer a18d624bcb gsdx: Add an automatic CRC hack level
If a user switches renderer they also have to remember to change the CRC
hack level for the best user experience with the selected renderer.

This commit adds a new automatic CRC level that autoselects the
recommended CRC level for the selected renderer, so that a user doesn't
have to make the change manually.

coauthor: turtleli
2017-03-28 23:05:24 +02:00
willkuer 439472d4f8 gsdx: Add template version of GetConfig
It allows static_casts to be avoided for enum classes
2017-03-28 23:05:24 +02:00
Jonathan Li 85ddf69042 gsdx: Improve OpenGL HW renderer checks
If OpenGL software is the saved ini renderer and F9 is pressed to toggle
to the hardware renderer, depth emulation will be disabled. This fixes
that issue.
2017-03-28 23:05:24 +02:00
Jonathan Li a5282daf91 gsdx: Store the current renderer in GSdxApp 2017-03-28 23:05:24 +02:00
Jonathan Li 94f2ad9263 gsdx: Move renderer config loading from GSOpen2 to _GSOpen
Some duplicate logic is avoided this way.
2017-03-28 23:05:24 +02:00
lightningterror 6977658443 GSdx ogl: SSO Workaround for AMD buggy drivers (#1858)
GSdx ogl: SSO Workaround for AMD buggy drivers

All 2017 drivers are now blacklisted.
The BSOD/crash issue is still there so don't set Blending Accuracy to None!
Shortened the message in the console making it more appealing.
2017-03-28 23:02:19 +02:00
orbea 2aa33e2875 Add crc hack for project metafalica
Closes https://github.com/PCSX2/pcsx2/issues/1762
2017-03-27 12:51:43 +02:00
Jonathan Li f1eff358da gsdx:windows: Fix console output when replaying dumps 2017-03-23 01:33:35 +00:00
Jonathan Li f174d71ac7 gsdx: Fix vsnprintf usage in format function
-1 is only returned when there is an encoding error, and the va_list
argument is indeterminate after being passed to vsnprintf.

Use the return value to determine the buffer length, and call va_end and
then va_start before vsnprintf is called again.
2017-03-21 23:21:26 +00:00
Jonathan Li ae2e8469b4 gsdx: Remove ancient codeblocks file 2017-03-21 23:21:26 +00:00
Jonathan Li 67d9436f22 gsdx: Remove unused and incomplete GSDeviceSW 2017-03-21 23:21:26 +00:00