100 Commits
Author SHA1 Message Date
gregory.hainaut 30d5135fdd gsdx-ogl: sigh.. this one was hidden :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5932 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-23 08:25:54 +00:00
gregory.hainaut 192c5d2c4a gsdx-ogl: one more
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5931 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-22 22:00:46 +00:00
gregory.hainaut 6c87673e57 gsdx-ogl: forget a pointer
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5930 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-22 21:14:57 +00:00
gregory.hainaut ba46b25e2f GSdx-ogl: GL4.1 program shader is optional
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5929 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-22 09:08:37 +00:00
gregory.hainaut d044147698 linux: fix compilation issue with recent Mesa (gentoo)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5928 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-13 17:37:40 +00:00
gregory.hainaut 141c5e60c5 mirror, mirror
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5924 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-06 23:32:56 +00:00
gregory.hainaut 9d41fe251b linux fix:
rename Gte.c into Gte.cpp need to be done on windows too
rename a duplicated function. Until we get a nice name for it.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5923 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-03-06 23:30:11 +00:00
gregory.hainaut e24f3585d4 pcsx2: fix window compilation + a couple of extra ;)
* Fix some issue with the new debugger on linux
* Enable the previous tlb miss fix on the interpreter
* disable the building of po by default. It pollute too much my env.



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5914 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-23 16:00:55 +00:00
gregory.hainaut 220f55d760 linux compilation fix:
* use c++11 for pcsx2
* rename __rdtsc so I won't conflict with gnu version
* add a bunch of .data() method to get string data



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5913 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-23 09:57:01 +00:00
gregory.hainaut ca3035fe07 pcsx2: on going work to better support tlb miss
Currenty code isn't activated because it will crash any game that do a tlb miss (with the recompiler)

However if you activate the code with the interpreter, the exception will be fired and new tlb setting
will be loaded => got nice picture with "Bouken Jidai Katsugeki"



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5911 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-22 16:23:31 +00:00
gregory.hainaut 5af621056a gsdx ogl: new option for free driver
reduce_gl_requirement_for_free_driver => set it to 1 to only required a 3.0 context (you still required the good extensions)



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5910 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-22 16:12:42 +00:00
gregory.hainaut 1922598f0f the "don't let users shoot themself in the foot" commit
UserHacks_AlphaStencil will take precedence on override_GL_ARB_shader_image_load_store


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5891 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-08 11:22:51 +00:00
gregory.hainaut 3d7b86660a gsdx ogl: Enable by default advance DATE effect on nvidia (GL4 GPU)
Note: DATE is used for shadows (persona 3) and others effect

You can disable it when you disable gl image extension (override_GL_ARB_shader_image_load_store = 0)
You can also enable it on AMD too (set it to 1 this time) but no guarantee.

If you feel the extension is too slow, you can try disable some gl barrier (aka "damn the torpedo full steam ahead!").
It can be done with the option UserHacks_DateGL4 = 1. Otherwise just disable the extension.

Note: don't enable UserHacks_AlphaStencil in the same time. GL_ARB_shader_image_load_store is an alternative implementation.
Enabling both in the same time will lead to undefined (well surely wrong) behavior.




git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5890 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-08 11:05:26 +00:00
gregory.hainaut 384c0c12ea gsdx ogl:
* properly detect gl nv depth extension
* Always show the hack on the gui. Add a new hack option for DATE (gl4.2) only
* Save the scan mode on linux too (f7)
* hopefully fix some crash on some drivers... (ensure aligment 256 bits alignment, and if not use std memcpy)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5888 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-07 19:53:01 +00:00
gregory.hainaut 6cf75e086b gsdx ogl: Only enable advance DATE when user request it
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5864 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-01 18:46:18 +00:00
gregory.hainaut 061f357618 i18n: refresh all translations
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5863 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-01 17:20:44 +00:00
gregory.hainaut c0558c00e7 gsdx ogl:
* gui refresh
  + Use some tab to reduce heigth for small screen
  + Add logz option
  + remove broken/experimental keyword. GSdx ogl is not too bad ;)
* autodetect GL_NV_depth_buffer_float

Linux tester you are welcome!



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5862 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-01 11:11:14 +00:00
gregory.hainaut 6f3326a9a4 gsdx ogl: Fog hide this typo :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5861 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-02-01 10:14:01 +00:00
gregory.hainaut 84895eadd9 gsdx ogl: correct most of Z-depth issue
Best setting if you driver support GL_NV_depth_buffer_float => GL_NV_Depth = 1 & logz = 0
Otherwise => GL_NV_Depth = 0 & logz = 1

Explanation of the bug:
Dx z position ranges from 0.0f to 1.0f (FS ranges 0.0f to 1.0f)
GL z Position ranges from -1.0f to 1.0f (FS ranges 0.0f to 1.0f)

Why it sucks:
GS small depth value will be "mapped" to -1.0f. In others all small values will be 1.0f! Terrible lost
of accuraccy.

The GL_NV_depth_buffer_float extension allow to set the near plane as -1.0f.
So
"GL z Position ranges from -1.0f to 1.0f (FS ranges 0.0f to 1.0f)"
will become
"GL z Position ranges from -1.0f to 1.0f (FS ranges -1.0f to 1.0f)"
and therefore
"z posision [0.0f;1.0f] will map to FS [0.0f;1.0f]" as DX

Yes we just get back all precision lost previously :)
However you need hardware (intel?) and driver support (free driver?/gles?) :(





git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5860 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-31 21:30:54 +00:00
gregory.hainaut 1c5cec4647 i18n: refresh all languages with previous fix incorporated
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5857 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-30 19:27:58 +00:00
gregory.hainaut c707bf8572 i18n:
* add a PERL script to ensure translation quality (ie check c-string format)
* Fix c-format error as best as can! It will hopefully fix various potential crash


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5856 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-30 19:26:09 +00:00
gregory.hainaut 61da62bf27 pcsx2: Create GetProgramDataDir (for cheats_ws and game db)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5851 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-27 18:59:52 +00:00
gregory.hainaut 48356e31b8 linux:
* use same path as game index db for cheats and cheats_ws
* install the new cheat zip file on cmake and debian installer 


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5850 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-26 18:00:14 +00:00
gregory.hainaut 4ae6b0cb83 redo commit r5824 with the eye open this time...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5826 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-24 18:12:11 +00:00
gregory.hainaut 2f7d642113 i18n: update sv_SE/tr_TR/ko_KR + refresh others
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5825 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-24 17:46:01 +00:00
gregory.hainaut 6214fd0456 pcsx2: Used correct path for cheats/cheats_ws (thanks avih)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5824 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-24 17:41:23 +00:00
gregory.hainaut c2aa4ff3fd gsdx ogl:
* restore the old fxaa (Asmodeam will be integrated when I got time)
* port the recently added new scanline algo


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5818 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-18 14:46:13 +00:00
gregory.hainaut 23ae6f0641 the regular copy/past mistake
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5811 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-12 12:35:15 +00:00
gregory.hainaut 2238095a82 gsdx ogl: do the same as previous commit but for ogl ;)
* fix the missing auto interlace opt when cycling with hotkey on linux


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5810 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-12 11:38:50 +00:00
gregory.hainaut f5257b2c3c gsdx ogl: don't rely on GL_ES builtin (3 differents implementations...). Hopefully fix Linux Intel GPU.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5808 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-11 15:01:13 +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 5309dd0e59 zzogl: fix wrong type access
cmake: don't strip by default the binary in release mode
gsdx: disable the regeneration of ogl shader


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5806 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-10 20:25:03 +00:00
gregory.hainaut b13c00f42d i18n:
* update korean translation
* generate german binary mo file

Translation status:
locales/ar/pcsx2_Main.po -   563/  2/565   ( 99%)  -2
locales/cs_CZ/pcsx2_Main.po -   564/  2/565   ( 99%)  -1
locales/fi_FI/pcsx2_Main.po -   563/  2/565   ( 99%)  -2
locales/hu_HU/pcsx2_Main.po -   525/  8/565   ( 92%)  -40
locales/id_ID/pcsx2_Iconized.po -    49/ 48/74    ( 66%)  -25
locales/id_ID/pcsx2_Main.po -   563/  2/565   ( 99%)  -2
locales/ja_JP/pcsx2_Main.po -   563/  4/565   ( 99%)  -2
locales/ms_MY/pcsx2_Main.po -   563/  2/565   ( 99%)  -2
locales/nb_NO/pcsx2_Main.po -   563/  2/565   ( 99%)  -2
locales/pl_PL/pcsx2_Main.po -   563/  2/565   ( 99%)  -2
locales/ru_RU/pcsx2_Main.po -   557/  8/565   ( 98%)  -8
locales/th_TH/pcsx2_Iconized.po -    72/  3/74    ( 97%)  -2
locales/th_TH/pcsx2_Main.po -   563/  2/565   ( 99%)  -2
locales/tr_TR/pcsx2_Main.po -   564/  2/565   ( 99%)  -1
locales/zh_CN/pcsx2_Main.po -   564/  2/565   ( 99%)  -1
locales/zh_TW/pcsx2_Main.po -   563/  2/565   ( 99%)  -2



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5800 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-07 07:39:00 +00:00
gregory.hainaut 9d34c34e6c i18n: new language croatian
+ fix a french string (thanks pgert for the info)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5792 96395faa-99c1-11dd-bbfe-3dabce05a288
2014-01-04 17:38:12 +00:00
gregory.hainaut 349b91ef1b i18n:
* update fr_FR/it_IT/es_ES/pt_BR
* refresh others for free ;)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5791 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-12-31 17:13:36 +00:00
gregory.hainaut 33832b4479 gsdx ogl: Intel driver keep the GL_ES macro undefined...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5785 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-12-30 14:48:26 +00:00
gregory.hainaut bdea4837c7 ... forget to refresh my patch ...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5784 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-12-30 10:15:01 +00:00
gregory.hainaut 4d3de6e911 gsdx linux:
* allow to control the gl dectection from the gui (+1 for the user-friendliness ;) )
* disable geometry shader by default on Intel driver


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5783 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-12-30 09:30:10 +00:00
gregory.hainaut 462c40cf4b fix zzogl-cg too
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5773 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-12-23 14:25:51 +00:00
gregory.hainaut ea804a309f zzogl: fix compilation issue with mesa10
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5772 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-12-23 13:35:48 +00:00
gregory.hainaut c8068e0514 i18n: unfuzzy one string (only a case update on the English string)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5769 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-12-16 19:32:52 +00:00
gregory.hainaut eea231b4ea i18n:
* refresh all strings with latest update
* Update it_IT and sv_SE


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5768 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-12-15 12:25:59 +00:00
gregory.hainaut 0a9e9f9834 cmake: fix sdl switch typo (close #1448)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5761 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-11-12 18:56:15 +00:00
gregory.hainaut 5df7af9bc5 cmake:
* new option SDL2_API
* drop GLSL_SHADER_DIR. Useless, shaders are embedded in .h file
* use some hardening flags (for the moment only basic one)
onepad:
* port the code to SDL2 (Note only SDL1 is supported for the moment)
* improve detection of button vs axis (long-standing issue)
* avoid potential overflow on mouse mouvement detection


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5756 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-11-01 21:05:59 +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 4934e43287 gsdx ogl: in case of EGL_BAD_MATCH try to create the context with different option (hope to fix intel mesa)
cmake: add sdl as a dependency requirement of spu2x


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5732 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-10-05 10:37:48 +00:00
gregory.hainaut 00ea70d4d1 spu2x (linux): allow to use sdl as audio backend instead of portaudio (recommended for pulseaudio user). Close i1413
Thanks to Matt Scheirer for his patch



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5731 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-09-14 15:23:35 +00:00
gregory.hainaut c2acd80236 spu2x: correct the modulo parameter of the Timestretcher. Use a size of 128 so the compiler can optimize the code a bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5728 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-09-11 20:56:48 +00:00
gregory.hainaut 44d8301bb2 spu2x: array out of bond (-1)
Performance note, it might be faster to replace the MODULO with an AND. Not sure on the impact
for the new time stretcher algo.

GSdx: fixed use-after-free (linux)

PCSX2: 
* add a define to support address sanitizer (both rely on 0x20000000-0x3fffffff memory ranges..)
* sio_buffer out of bond (-1). Maybe we can move the flush in the 2 if previous branch. It would
avoid the extra test.
* wxGetEnv (linux) generates double free (maybe not thread safe). Cache the result so it doesn't crash 
anymore when switching renderer

Comment/Review/Improvement are welcome :)




git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5727 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-09-10 11:41:11 +00:00
gregory.hainaut fb684df32b pcsx2: fix 4 arrays out of bond
Gsdx: fix a memcpy src/dst overlap + a clang compilation fix



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5726 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-09-05 20:01:47 +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 452cf72ddf onepad: fix a bug to handle multiple button (fix #1271)
zzogl: fix memory leak (fix #1431, #1432)
GSdx ogl: disable geometry shader on Nvidia/Windows (I will wait a 3rd implementation to find which one is correct)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5724 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-25 12:11:32 +00:00
gregory.hainaut 690432de30 gsdx ogl:
* redo most of the texture upload (PBO): colin3 benchmark: 32 fps now (vs 26 fps 2 weeks ago)
* use the cross vendor vsync extension on linux (previous wasn't supported by nvidia)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5721 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-17 09:05:41 +00:00
gregory.hainaut 07605941ef gsdx ogl:
* some preliminary work to test/benchmark bindless texture in the future (glsl was not yet updated)
Bindless texture allow to get a GPU texture pointer and then set it directly
to the shader as a basic uniform.
=> no more texture unit selection/validation
=> no more texture validation neither texture hash lookup

3rdparty: update gl header to the latest gl4.4


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5720 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-17 08:57:52 +00:00
gregory.hainaut b4084047be gsdx ogl: Used a basic flat interpolation for color interpolation (line & tri primitives)
Card that support gs:
remain only a gs to generate sprite from a line. Even dummy gs are costly for the GPU.

Card that don't support gs:
remove useless copy of color for line and triangle primitives

Note for dx: opengl 3.2 (maybe not gles) supports both flat interpolation
convention (GL_FIRST_VERTEX_CONVENTION or GL_LAST_VERTEX_CONVENTION).  It might
be possible to shuffle vertex index to put the last vertex in first position.

- buff[0] = head + 0;
- buff[1] = head + 1;
- buff[2] = head + 2;
+ buff[0] = head + 2;
+ buff[1] = head + 1;
+ buff[2] = head + 0;



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5718 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-14 10:18:38 +00:00
gregory.hainaut 0f603a98d5 gsdx ogl: Test the ARB_shader_subroutine GL4.0 extension
The idea was to replace shader program swith by pointer function calls inside
shaders.  At least parameters that are often changed between draw call. So far
I only ported atst and colclip. Unfortunately code is "slower" (on GSdx standalone).
For the moment keep the code but disabled.

If I understand well the validation of program is done in the "driver thread"
but the additional call are done in the overloaded MTGS thread. Apitrace
profiling shows faster GPU draw calls. Another possibility is that the driver still
need to validate the draw call because of others state change.

Here some stats on colin3 (90 frames):
without subroutine: UseProgram 125246
with subroutine: UseProgram 2906, subroutine 125945 => 3605 extra calls overhead (not
all parameters are ported to subroutine)



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5715 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-10 19:43:59 +00:00
gregory.hainaut c9755361ec gsdx ogl: remove useless ps.rt
Note: I think we can do the same on DX11

Perf wise: on colin mcrae 3 it reduces shader prog setup from 3005 to 2086 each frames. It saves 2 ms of CPU processing (27->29fps)



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5714 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-06 06:48:44 +00:00
gregory.hainaut a46b489a24 gsdx ogl: various minor optimization.
* move most of gl states into a separate namespace. Extend it to depth/stencil/blend micro state
=> save 10,000 opengl call by frame for colin mcrae 3
* Only setup blend state of first drawbuffer
* Don't request anymore a debug context on dev/release build



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5713 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-05 20:25:25 +00:00
gregory.hainaut 34045eb8f7 gsdx ogl: AMD users upgrade to 13.8 now ;)
* clean extension management and fix compilation of previous gl44 code.
* Use pixel buffer object to upload texture data.
=> avoid crash on AMD driver
=> a bit faster and probably got some margins for the future



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5712 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-03 08:29:01 +00:00
gregory.hainaut 64f783410e gsdx ogl:
* preliminary work for GL4.4 extensions (ARB_clear_texture & ARB_multi_bind). Disabled until I got a 4.4 driver
Note: I plan also to use ARB_buffer_storage
* compute texture gl option in the constructor (avoid a couple of swith case)
* redo texture unit management. Unit 0-2 for shaders, Unit 3 for texture operations. MultiBind will allow to bind 
shader input without disturbing texture binding points.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5711 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-08-02 16:38:12 +00:00
gregory.hainaut 2634ee851c miss another debug stuff
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5709 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-28 19:08:46 +00:00
gregory.hainaut a172da1f30 gsdx ogl: oups forget to disable stencil debug
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5708 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-28 17:12:23 +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 b912778a3c gsdx: forget to regenerate shader in previous commit
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5702 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-13 16:31:19 +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 bd5f379044 gsdx ogl:
* uniform was wrongly set before the activation of the program (free driver only)
* Always use only 1 drawbuffer. Easier besides previous setup was wrong for convert:ps_main1

GLES trial (v3):
* add the cmake option GLES_API. Note library (libgles) are hardcoded for the moment
* Disable opengl check
* Disable gl_GetDebugMessageLogARB not supported!
* Emulate gl_DrawElementsBaseVertex, add manually the index offset (surely slow but work)
* Fix hundred of shader error (no implicit cast of integer to float...)
Unfortunately GLES doesn't support dual blending so no blend in hardware renderer. Otherwise it is fine




git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5700 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-12 21:12:34 +00:00
gregory.hainaut a764950468 gsdx ogl:
* replace vertex interface with block interface. It avoid to depends on the ARB_sso extension.
* disable geometry shader on Nvidia & Linux. Slower but better than a black screen !
* default logz to 1, avoid some glitches.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5699 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-11 17:08:42 +00:00
gregory.hainaut f22b366cea gsdx:
* redo glsl2h.pl script to generate only one big glsl headers.
* fix gcc warning in GSVector.h
* fix memory leak of GSDeviceOGL.m_shader
* clean shader compilation function => split generation header & drop malloc stuff
cmake:
* only rebuild shader when asked by the use. Avoid perl dependency to build pcsx2


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5698 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-07 16:13:11 +00:00
gregory.hainaut dc036ff59d gsdx: split shader/program/pipeline object management into a separate class
* remove the possibility to compile shader from file. Some people loads older shaders...
  The feature might be readded later


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5697 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-06 10:08:52 +00:00
gregory.hainaut 544c84a344 gsdx:
* try to setup advance gl context attribute. If driver doesn't support it fallback to the default.

zzogl:
* use glsl2h to generate an header shader as GSdx. Much easier to install
* Get GSUniformBufferOGL & GSVertexArrayOGL speed improvement from GSdx

cmake:
* detect current gcc version. Yield  a warning if < 4.7 or an error if < 4.5

glsl2h:
* support zzogl too
* compute md5sum to avoid useless relink


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5696 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-06 09:42:46 +00:00
gregory.hainaut ba2ec6fe59 all: gcc warning clean round 4
* remove unused variable
* move static function from h into cpp
* Initialized hw_by_page to 0xFFFFFFFF instead of -1 (number must be a positive integer)
* Use a s32 fore m_current_lsn instead of u32 (use -1 as error code)
Bonus: a couple of fix for clang compiler (doesn't mean that it fully compile with clang)
* remove useless __debugbreak on linux
* use short for 16bits atomic function


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5695 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-03 18:42:05 +00:00
gregory.hainaut a4475a4595 spu2x:
* remove iconvert.cpp not used anymore
* change copyrigh header from GPL to LGPL. Those 2 files are only basic .h. 1 licence by plugin is enough ;)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5691 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-07-01 16:43:35 +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 ba20bb0258 pcsx2: gcc warning round 3
* various cast was overflowing
 - use unsigned integer for SSE mask
 - force SINGLE macro to use u32
* disable parenthesis warning, only a matter of coding style

Remains 2 wrong use of unsigned integer:
pcsx2/CDVD/InputIsoFile.cpp:96:21: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
pcsx2/Memory.cpp:108:86: warning: narrowing conversion of ‘-1’ from ‘int’ to ‘vtlbHandler {aka unsigned int}’ inside { } is ill-formed in C++11 [-Wnarrowing]


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5689 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-30 11:43:12 +00:00
gregory.hainaut d81254469a gsdx ogl:
* fix shader compilation on Nvidia (broken on r5682)
* fix various memory leak thanks to Valgrind

Cmake: fix a minor typo


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5688 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-30 11:18:46 +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
gregory.hainaut aec05e8b60 debian: update Control with latest GSdx requirement. Update Readme with latest openGL extensions
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5686 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-29 10:30:50 +00:00
gregory.hainaut 40e26648c6 all: gcc warning clean (round 2)
* reorder static initialization list
* Add missing virtual desctrutor to virtual object
* int -> uint/u32/uint32 cast of for loop index
* add a missing return in pxTrySetFocus
* fix size parameter of memset m_clut
* disable missing-field-initializers warning
* disable unused-local-typedefs warning


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5685 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-28 17:32:37 +00:00
gregory.hainaut d9af23c946 plugin: restore sprintf_s on windows and hopefully fix vs201n compilation
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5684 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-28 17:11:16 +00:00
gregory.hainaut 3c7167be50 clean (some) gdb warning: round 1
* use svnrev.h on linux too
* replace sprintf_s with snprintf (hope it still compile on Windows)
* init integer with 0 instead of NULL
* various int -> u32/uint32/uint on for loop index
* remove a couple of unused variable
* init few variable
* disable unused warning results


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5683 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-28 10:43:50 +00:00
gregory.hainaut ca1edbf2cb gsdx ogl:
* Separate state and shader compilation into separate function
* replace various hash_map by basic array
* Compact VertexScale and offset into a single vec4
* add the new option "ogl_vertex_subdata": subdata is faster on FGLRX, test are welcome on Nvidia drivers
    0 => use map/unmap
    1 => use subdata

replay: add "linux_replay" option and compute some nice stat (mean, standard deviation)

cmake: recreate shader header at build time


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5682 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-26 20:09:07 +00:00
gregory.hainaut f4ce6d6fce gsdx:
* don't delete the wnd in GSclose. It can still be used later
* Properly detect the GL_ARB_gpu_shader5 extension for Fxaa
* A couple of fix in Create (GSopen1) of GSWndEGL/GSWndOGL


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5674 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-16 16:33:08 +00:00
gregory.hainaut b7a6dd93b3 i18n: refresh string translation
GSdx: nothing to see :p


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5673 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-16 09:55:37 +00:00
gregory.hainaut f4b173bbd1 gsdx: miss a part of the previous patch...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5672 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-16 09:43:34 +00:00
gregory.hainaut 09571dac0b gsdx:
* add exception in GSWndEGL and GSWndOGL 
* Try to use EGL when GLX failed => you don't need any flags for the opensource driver ;)

cmake: don't install anymore the glsl shader


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5671 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-16 09:40:38 +00:00
gregory.hainaut 9b037a3813 pcsx2: increase a bit the minimum size of the plugin dialogs (GSdx name is too long)
gsdx:
* move gl function loading into GSwnd. Clean the header and avoid to rely on macro.
* Always require libegl for GSdx. You still need to select the API at compilation.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5670 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-16 08:43:50 +00:00
gregory.hainaut b10d554764 gsdx (ogl):
* fix memory leak of m_wnd
* don't escape % in the shader string
* Fix shadeboost StretchRect parameter

debian: compress package with xz


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5669 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-16 07:05:57 +00:00
gregory.hainaut 328cc55c60 gsdx: merge back gsdx-ogl-wnd to the trunk
Here the list of the major change:
* Drop glew. It won't failed to load because of the wrong glew version
* shaders are include in the source code to ease release&packaging

* Port GSdx-ogl to MS Windows

* Fix lots of HW rendering bug. 8bits textures/upscale/transparency...
   - rendering isn't yet perfect but some games must be playable now.
* Add Fxaa shader.
* run on the opensouce driver (require mesa 9). You will need to build with EGL support
  - either use this cmake option -DEGL_API=TRUE
  - Or the handy script ./build.sh --egl ...
* Linux AMD users: you need to do a choice
    * speed but bad rendering => catalyst
    * correct rendering but slower => opensource radeon

* Some parts are still unimplemented:
 - MSAA
 - Vsync
 - Fully dynamic switch between EGL/GLX
 - Speed optimization
 - Others stuff that I have forgotten  :p



git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5667 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-15 20:11:13 +00:00
gregory.hainaut 91e74637d5 gsdx-ogl-wnd:
* update linux dialog: create a custom shader box and put it Shade boost and Fxaa
* force the reloading of the inifile after any configuration update.


git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5666 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-15 15:03:44 +00:00
gregory.hainaut 4c37d25134 gsdx-ogl-wnd: fix ifdef mess on fxaa (both dx and ogl)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5665 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-15 10:35:10 +00:00
gregory.hainaut adc232cb95 gsdx-ogl-wnd: VS2010 doesn't support string bigger than 64k bytes. So remove PS3&360 shader from fxaa
git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5664 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-15 10:06:47 +00:00
gregory.hainaut 19961175c9 gsdx-ogl-wnd: port (minor) renderer update of r5649 to opengl
Now the brach is ready to be merged :)

Dears Window users. If you can test that:
1/ still compile
2/ still running on DX
3/ can run with opengl


git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5663 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-15 09:24:13 +00:00
gregory.hainaut f8242bd458 gsdx-ogl_wnd: Merging r5633 through r5661
git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5662 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-15 09:05:02 +00:00
gregory.hainaut 93d2cd6f7e gsdx-ogl-wnd: ... forget to add the file...
git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5661 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-15 07:22:11 +00:00
gregory.hainaut 8ec0275a96 onepad: Don't try to acquire the lock when it wasn't initialized. Avoid
the freezing of the window when a plugin failed to open.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5660 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-15 07:20:02 +00:00
gregory.hainaut 59501227b3 gsdx-ogl-wnd: implement fxaa. I directly reuse the .fx file with minor update
git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5659 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-14 21:22:44 +00:00
gregory.hainaut 92a3549e9c gsdx-ogl-wnd:
* Patch from miseru to fix VS2010
* Quick fix for 8-bits textures


git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5658 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-14 16:22:22 +00:00
gregory.hainaut e021630bb9 gsdx-ogl-wnd:
* Don't write color during stencil. Keep the old method to ease debug
* Realign date shader on DX
* keep stencil ref to 1. Reduce stencil management burder
* Fix texture pitch (was in pixels but need bytes). Fix Bleach Blade Battlers 2. Thanks Miseru for your trace

Remember note:
fxaa -> not yet implemented
msaa -> not implemented (I might drop it actually)
8 bit texture -> not yet implemented



git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5657 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-14 11:34:44 +00:00
gregory.hainaut 382258ec03 gsdx-ogl-wnd:
* properly set the stencil write mask
* Multiply Y coodinates by -1. Let's hope it fixes shadows gliches.


git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl-wnd@5656 96395faa-99c1-11dd-bbfe-3dabce05a288
2013-06-12 20:57:16 +00:00