Commit Graph

192 Commits

Author SHA1 Message Date
refractionpcsx2 c659b1aa18 Merge pull request #617 from ssakash/patch-26
Console log message for current renderer.
2015-06-28 13:24:09 +01:00
Jonathan Li acc6ad59ba GSdx: Use correct renderer after config change
Rework the renderer selection logic to reload the saved renderer after
it's been changed in the config panel and to properly detect whether a
renderer toggle has been requested.
2015-06-26 00:50:07 +01:00
Akash 4b472bb461 Console log message for current renderer. 2015-06-25 20:15:45 +05:30
Gregory Hainaut 7135867119 gsdx: very old typo on option name
Windows uses Renderer with an uppercase R
2015-06-20 16:18:10 +02:00
Karasuhebi 4d1ca4bb76 Changes in title bar: DX -> D3D
Changed the name of the Direct3D renderers so they would match the way
they are named in GSdx's Plugin Settings window. Also changed a printf
to say OpenCL instead of opencl.
2015-06-18 13:00:29 -04:00
Jonathan Li e182251fbc GSdx: Add renderer type to title bar 2015-06-17 21:59:05 +01:00
Gregory Hainaut 68e44fd354 gsdx: reload the state when GSconfigure is called
It fixes the reloading of openGL option and it avoids
issue during pause/resume.

Fix issue #584
2015-06-06 08:51:53 +02:00
Gregory Hainaut 7e662c50d4 Revert "gsdx: always restore the full gs state object (s_gs)"
This reverts commit 2ea049b5a5.
2015-06-06 00:22:15 +02:00
Gregory Hainaut 2ea049b5a5 gsdx: always restore the full gs state object (s_gs)
It will force a reload of opengl option
2015-06-04 18:29:31 +02:00
Gregory Hainaut 9fe13f7a6b gsdx linux: fix a memory leak
Not important but pollute the valgrind log
2015-06-02 09:28:35 +02:00
Gregory Hainaut 01e4a5148d gsdx-ogl: avoid crash in debug/dev build
Don't be silly, don't put gl trace in EE thread.
2015-05-29 16:50:27 +02:00
Gregory Hainaut a3bbe68d56 gsdx: throw an exception when we miss a mandatory gl feature
Gracefully quits when driver is not supported
(like nvidia legacy driver for GTX260)

Please test the impact on windows
2015-05-26 11:03:59 +02:00
Gregory Hainaut fa761a129d gsdx-linux: add an option to enable/disable recording
Avoid to kill the computer/application if the user press F12 by accident
2015-05-19 13:14:18 +02:00
Gregory Hainaut 98dde32dc0 gsdx-replayer-linux: use new code to allow loading of .gs.xz dump
A bit slower at startup but it saves a lots of disk space!

Reduce the size of my gs collection of 11GB :)
2015-05-17 22:08:10 +02:00
Gregory Hainaut e93f780268 gsdx-replayer-linux: separate a bit parsing and executing code
It would ease the porting of the code to read xz file
2015-05-17 22:08:10 +02:00
Gregory Hainaut 6ced837360 gsdx-debug: add some PERF info in trace
The idea is to detect easily effect that are known to be slow on opengl
2015-05-17 13:05:08 +02:00
Gregory Hainaut 8a73849531 gsdx-ogl: enable multithread driver by default for nvidia
+ add a linux gui option to disable it (for test purpose)
2015-05-16 15:22:20 +02:00
Gregory Hainaut d870188d21 gsdx: sed/o/off/ 2015-05-15 20:40:09 +02:00
Gregory Hainaut f37f3cb3cf gsdx-ogl: improve texture uploading
Initially we copy pitch by line in the PBO and tell the dma to only
use the first valid byte.

Now, we only copy useful data to the PBO. It reduce the copy and PBO memory requirement.

It seems a bit faster on native resolution
2015-05-11 16:32:13 +02:00
Gregory Hainaut cb6e8a7d6a gsdx-linux: Don't enable EGL by default
I was hoping that EGL become a standard much more faster. Currently it is an useless dep
so let's disable it by default.
2015-05-11 15:33:40 +02:00
Gregory Hainaut 335695bd0e purge GLES from GSdx !
mobile will use vulkan (or any new API) anyway
2015-05-01 20:02:17 +02:00
Gregory Hainaut c8a3db114c gsdx debug: create savet option
0: don't dump input texture
1: dump input texture

Now, you can do a first pass with only RT. When you find the wrong call, you can redump the input texture of the bad draw.
2015-05-01 13:35:21 +02:00
Gregory Hainaut ee244071fa gsdx-ogl: use 64 bits counter + fix division factor
I also added a counter of the real size of the texture.

I have a bad overhead for pbo transfer
2015-04-25 14:18:21 +02:00
Gregory Hainaut 47a0026b60 gsdx-ogl: print the bandwidth of uniform 2015-04-25 13:00:03 +02:00
Gregory Hainaut 4bb8d15228 gsdx: be more verbose on title and bandwidth debug 2015-04-24 17:13:56 +02:00
Gregory Hainaut a75d78bd7e gsdx: use standard lock_guard instead of GSAutoLock 2015-04-17 19:03:21 +02:00
3kinox 4211d51f07 64 bits: solve various of type problems 2015-02-27 22:07:13 +01:00
Gregory Hainaut ee34bd724f gsdx ocl: avoid a crash if ocl is selected but not enabled 2014-12-23 19:39:02 +01:00
Gregory Hainaut 4773bcf0ea cmake: s/_LINUX/__linux__/ 2014-12-20 10:54:24 +01:00
Gregory Hainaut 76f719e5d0 gsdx-ocl: Add a ENABLE_OPENCL option
* Allow to compile GSdx on linux without opencl yet.
2014-12-02 00:16:35 +01:00
gabest11 db7c26cde7 - Experimental OpenCL renderer (missing features: point, line, texture cache, mipmap, aa1, device selection). Needs any OpenCL SDK for the common headers and stub lib to compile, tested with AMD and Intel. Too bad it is not part of the Windows SDK yet.
- Renumbered renderer ids, compatible with old numbering, but it does not follow the mod3 logic anymore.
2014-12-02 00:16:33 +01:00
Ryan Houdek 33adabb035 Fix some _M_AMD64 checks in GSdx.
In the future these will be _M_X86_64, but for now this won't be the case.
2014-07-15 18:21:03 -05:00
Gregory Hainaut 9ac9307b44 gsdx: try to protect more code when togging f9
deassert gsopen_done before delete the gs object. Compiler and CPU will
reordonate the store (or not because it is a global variable). Probably not
perfect but better.

Got a crash on GSKeyEvent which I guess wasn't thread safe. So let's ensure
gs is open.
2014-06-13 23:32:50 +02:00
Gregory Hainaut 0bf7a35a53 pcsx2: improve the GS read fifo API
1/ initReadFifo will be first called on the GS thread
    (openGL can only be done on the GS thread)

2/ readFifo will be called on the EE thread. It is not safe too access eeMem from GS
 because of memory is virtual

Fix "recent" regression (crash) on Kingdom heart and others game too.

v2: add a len check on GSState::InitReadFIFO
2014-05-06 20:28:18 +02:00
Gregory Hainaut 58077c63a7 gcc-warning: check c function return. Print error when bad.
v2: properly check return code of fread/getcwd function
2014-05-03 10:32:05 +02:00
Gregory Hainaut 8b78551b92 gsdx-ogl: improve debugging capabilities
allow to print memory transfer usage
Check gl call in dev build
2014-03-25 16:36:29 +01:00
Gregory Hainaut 41091f8ebf gsdx ogl: remove multithread hack
This hack was used because GSReadFifo was called from the EE thread.
Previous commit move the call to the GSThread.

Hopefully avoid flushing the full GPU contex would improve openGL
performance (at least avoid some hiccups ;) )

Note: newer GSdx ogl won't be compatible with older PCSX2
2014-03-25 16:36:29 +01:00
ramapcsx2.code 916537b0f8 These might be needed, dunno.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5899 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-12 12:52:03 +00:00
ramapcsx2.code 65152066ca Just a bit of GSdx debugging.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5898 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-11 21:47:43 +00:00
ramapcsx2.code d89d02a59f Refinement of the last patch.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5835 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-25 19:53:12 +00:00
ramapcsx2.code 2ba52ebf3e GSdx:
This fixes the crashes on F9 for me. We don't want to call GSgetTitleInfo2() when GSOpen() isn't finished yet.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5834 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-25 19:36:45 +00:00
ramapcsx2.code ab1f4f99af Small round of patches for various issues, #2.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5831 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-25 15:53:31 +00:00
gregory.hainaut b5cad8bd6a gsdx ogl linux: use OGL renderer by default otherwise it fallback to unsupported GSDeviceNull which badly crash
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5807 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-10 21:04:04 +00:00
gregory.hainaut e80b002929 gsdx ogl: Flush various pending work
* try to use more subroutine on VS&PS, unfortunately hit a driver crash!
* Call Attach/DetachContext through GSDevice so I can unmap currently mapped buffer
* Implement glsl part of GL_ARB_bindless texture, again hit another driver crash!
* various fix of GL_ARB_buffer_storage. Basic benchmark show only improvement on 'cold' case, I guess it will improve smoothness
* try to fix GL_clear_texture, no success so far. It seem the extension is limited to basic texture (aka no depth/stencil)



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5752 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-10-24 20:54:27 +00:00
gregory.hainaut e01c6cd9ce gsdx ogl: the proof of concept commit
* GL_ARB_shader_subroutine for perf
fix for nvidia => add missing shader declaration. Nvidia got +4fps on colin3 :) 

For the moment only 2 PS parameters are supported. Code need to be extended to support others games that often
switch shader program (like xenosaga).
require GL4 class hardware and the option override_GL_ARB_shader_subroutine = 1
Note: strangely on AMD linux it is slower!

* GL_ARB_shader_image_load_store for accuraccy (Date)
Use a signed integer texture and reenable color buffer writing

Current status: Amagami_transparency.gs & P3_battle_shadows.gs are now working on Nvidia with a small perf impact.
Current implementation detail:
1/ setup the standard stencil as before
2/ on remaining pixel, draw once to compute first primitive that will write a fail alpha value.
3/ final draw based on primitive id of step 2

Note: I think we would get a bad behavior if depth test&mask are enabled on step 2/3
Note2: on my limited testcase the perf impact was on CPU. It would be possible to merge step1&2 to nullifying it (could 
even be faster actually), however it would require more GPU power.

Again require GL4 class hardware. And the option UserHacks_DateGL4 = 1



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5725 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-28 08:44:16 +00:00
gregory.hainaut e394de86dc gsdx ogl:
* add a non-working hack: UserHacks_DateGL4, goal was to replace UserHacks_AlphaStencil
 + Detection of good/bad samples is based on primitive ID variable. However I'm not sure
 the behavior is always the same between draw call...Anyway let's keep a copy of the current
 work
* Dump integer texture into text csv
* add gl4.2 ARB_shader_image_load_store extension (needed by UserHacks_DateGL4)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5707 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-28 14:40:43 +00:00
gregory.hainaut d3e1e4da0d gsdx ogl:
* allow to switch renderer with F9
* skip first frame in stat of the replayer
* drop msaa. Fxaa and internal resolution will do the job
* move texture attachment from texture object into device object (allow to keep sanely the state)
* split the write buffer and attachment setup
* completely split sampler and texture input setup
* redo GSDeviceOGL::CopyOffscreen to avoid an extra copy.



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5704 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-19 19:25:50 +00:00
gregory.hainaut 916a091f8a gsdx ogl: GLes
* use gles header file, disable opengl code (mainly GLX, ARB_sso, geometry shader)
* Define properly the function pointer, GLES use basic linking whereas GL must get the symbol dynamically
* cmake: properly search and set libglesv2.so
* don't use dual source blending => HW renderer work (only miss unimportant FBA)



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5701 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-13 11:39:45 +00:00
gregory.hainaut 91d39de645 gsdx ogl: fix crash when pause/resume with EGL (opensource driver)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5690 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-30 15:27:50 +00:00
gregory.hainaut 58cacc3b1c gsdx: use size_t for loop index when it used countof macro
* fix override_GL_ARB_copy_image typo


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5687 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-29 12:02:03 +00:00