Commit Graph

1074 Commits

Author SHA1 Message Date
Gregory Hainaut 7e89247bf4 gsdx hack: don't add extra correct for zero length texture
Otherwise t1-t0 is 16 instead of 0
2015-04-11 10:54:30 +02:00
Gregory Hainaut d2156c86eb gsdx: improve previous hack for bilinear sprite
PS2 uses a -0.5 offset before sampling so texels must be rounded to half-pixel boundary

If fixes glitches on Venus and taisho-mononoke

Note: I didn't fixed yet texture render in reverse because I don't have any test for it.
2015-04-10 09:42:39 +02:00
Gregory Hainaut f5eeb2024e gsdx: anti-glitches v3: Tester wanted
UserHacks_round_sprite_offset = 1 <= enable correction of flat sprites
UserHacks_round_sprite_offset = 2 <= enable correction of all sprites (better on a couple of dump but not sure of the consequence)

I completely redo the algorithm. This time I do the projection and
interpolation of the 2 extrem vertex. This way I can compute the min/max
valid texture coordinate.

It gives stronger guarantee that texture sampling will be done inside the texture.

However it might have a performance impact, likely reasonable because it
is limited to sprite vertex.

A big thanks you to all people that provide me GS dump and test reports.
2015-04-09 19:51:50 +02:00
Gregory Hainaut 05eb1641f2 gsdx: add glsl debug capabilities
Useful to debug bad texture sampling
2015-04-08 10:15:25 +02:00
Gregory Hainaut 98d8ad7484 gsdx: new anti-glitches upscaling hack: UserHacks_round_sprite_offset
It is replacement of the previous hack (UserHacks_stretch_sprite). Don't enable both in the same time!

The idea of the hack is to move the sprite to the pixel boundary. It
avoids most of rounding issue. It also rescales verticaly the sprite (avoid horizontal line on ace combat).
I don't like this rescaling maybe we can limit it to only 1 pixels.

On my limited testcase, results are much better with any upscaling factor.

I still have a bad line in Kingdom heart. If you have issue with others
game please provide us a GS dump.
2015-04-07 19:18:24 +02:00
avih 3077de3637 Merge pull request #496 from 3descx9/master
crc hack for Ponkotsu Roman Daikatsugeki: Bumpy Trot ( Steambot Chronicles JP)
2015-04-07 12:04:25 +03:00
ssakash defb57178f crc hack for Ponkotsu Roman Daikatsugeki: Bumpy Trot ( Steambot Chronicles JP) 2015-04-07 14:14:26 +05:30
Blyss Sarania 506648bd6b GSdx: Hacks UI: Add missing BREAK that I left out 2015-04-06 14:39:51 -05:00
Blyss Sarania c6fb098703 Add two new tick boxes and associated description
For Gregory's two new awesome hacks

Also make new hacks obey "Enable HW Hacks"
2015-04-06 13:48:59 -05:00
Gregory Hainaut 3c84e6848b gsdx: don't enable previous hack if m_upscale_multiplier <= 1 2015-04-04 01:21:46 +02:00
Gregory Hainaut 183b5d4def gsdx: improve UserHacks_align_sprite_X hack for ace combat
Game uses 1x1 texture sampling. In this condition we don't care
if texture is correctly aligned.
2015-04-03 23:00:54 +02:00
Gregory Hainaut 53ab390e72 gsdx linux: add a nice gui option for previous hack
I also added two nice tooltips :)
2015-04-03 21:25:34 +02:00
Gregory Hainaut fbaa84e691 gsdx: anti-vertical-line hack UserHacks_align_sprite_X
This ack realign sprite to full pixel coordinate

It solves vertical line in ace combat/tekken/colin mac rally
2015-04-03 21:02:25 +02:00
Gregory Hainaut e40a26be19 gsdx: add some helper to debug openGL renderer 2015-04-03 20:28:44 +02:00
Gregory Hainaut 5269e54f02 gsdx: tune previous hack
Only disable bilinear on the sprite that were forced by the user.
If the PS2 requires a bilinear filtering, there is likely a big enough texture
2015-04-03 20:09:02 +02:00
Gregory Hainaut bb728ea186 gsdx linux: filtering label was in wrong oder
The standard mode is 2
2015-04-03 20:07:50 +02:00
Gregory Hainaut d4b7410e3e gsdx linux: add a checkbox to enable easily previous hack 2015-04-03 18:33:05 +02:00
Gregory Hainaut e1a5736583 gsdx: anti-upscale-glitch hack UserHacks_SkipDraw
2x upscaling is pixel perfects. Bigger upscaling is better but not yet perfect

Feedbacks are welcomes (note it doesn't solve all upscaling issue, only wrong texture sampling)

For the history:
If you have a texture of [0;16[ texels and draws a primitive [0;16[

The formulae to sample last pixels of texture is
0.5 + (16*s-1)/(16*s) * 16
Native (s==1): 15.5 (good)
2x     (s==2): 16 (bad, outside of the texture)
4x     (s==4): 16.25 (bad, really outside of the texure))
2015-04-03 18:33:05 +02:00
Avi Halachmi (:avih) 45e2fd9204 crc hack for Raw Danger! (Zettai Zetsumei Toshi 2 US)
thanks to ssakash for the patch
2015-03-29 15:41:06 +03:00
Gregory Hainaut 3b5367c5b7 Merge pull request #452 from turtleli/fix-linux-build-avx2-with-tsx-disabled
GSdx: Linux: Fix build failure on AVX2 processor with disabled TSX, enable SSE4.2, SSE4.1, SSSE3 builds
2015-03-01 17:53:21 +01:00
Jonathan Li 1222bcbf6e GSdx: Comment out TransactionScope code
The TransactionScope class is compiled but never used. Comment it out
for now.
2015-03-01 16:40:48 +00:00
Gregory Hainaut c1604c4b38 gsdx🧵 only keep std::mutex/std::condition_variable
Keep pthread for thread until std::thread is really working
2015-03-01 17:29:40 +01:00
3kinox 7f1e907616 + Correct faulty behaviour of std thread by using native posix handle.
+ This is not yet perfect. Really, this standard seems like a load of crap to me in fact...
At least it works now. Should test again when gcc 5 & new c++ libs gets out.. Until then, it will do.
2015-03-01 17:29:39 +01:00
Jonathan Li 13c0e6f5ef GSdx: Explain TransactionScope changes 2015-02-28 14:21:44 +00:00
3kinox 4211d51f07 64 bits: solve various of type problems 2015-02-27 22:07:13 +01:00
Jonathan Li 329953ebc3 GSdx: Linux: Enable SSE4.2, SSE4.1 and SSE3 builds 2015-02-22 11:18:23 +00:00
turtleli 9b572d2d47 GSdx: Linux: Fix AVX2 CPU build with TSX disabled
On Linux, CPUs with AVX2 instruction sets that have TSX disabled (by
microcode update or otherwise) fail to build GSdx. The __RTM__ macro is
undefined, with leads to the TSX RTM instruction set (_xbegin, _xend,
_xabort, etc.) being unavailable.

Modify the preprocessor check so that the RTM instructions are only used
if available.
2015-02-22 11:18:23 +00:00
Gregory Hainaut 330d14941f gsdx-linux: support dump mode on linux
It could be useful to analyze GS dump. Warning it consumes a lot of
disk space.
2015-02-21 13:51:06 +01:00
Gregory Hainaut e0f56282de cmake: no preferred-stack-option in asan
It conflicts with the global definition

I don't remember why this option was set on GSdx. Potentially it could be dropped (or fixed correctly)

Anyway, it will help to enable Address Sanitizer on Linux Build
2015-02-20 19:44:51 +01:00
Gregory Hainaut 0bdeb8d411 Merge pull request #430 from PCSX2/win-ocl-crash-fix
gsdx ocl: check size of array before access
2015-01-17 12:05:52 +01:00
Gregory Hainaut 70ad09f6ef gsdx ocl: check size of array before access
Potential fix for issue #408 ?
2015-01-16 09:39:50 +01:00
uyjulian 446977d126 GSdx forward compatible bit 2015-01-09 19:39:59 -06: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 767b841fea gsdx ocl: disable it on windows
Until we found a way to fix a couple of crashes
2014-12-22 19:02:35 +01:00
Gregory Hainaut 66d7aa75e2 cmake: move -DNDEBUG to global option 2014-12-20 13:43:25 +01:00
Gregory Hainaut a99f3ea321 cmake: remove duplicate flags
also use the lighter elseif structure to reduce a bit the size of cmakefile
2014-12-20 13:43:25 +01:00
Gregory Hainaut 4773bcf0ea cmake: s/_LINUX/__linux__/ 2014-12-20 10:54:24 +01:00
Gregory Hainaut ff24a5f702 gsdx linux: disable std::thread
Threads are not killed properly therefore GS crashes on reloading (aka F9)

See issue #392
2014-12-14 12:22:40 +01:00
Gregory Hainaut b9297c6158 Merge pull request #377 from PCSX2/tlb_goemon_v2
goemon gamefix improvement
2014-12-14 11:47:37 +01:00
Gregory Hainaut 7d21497c11 clang: no support of f-abi-version=6 option 2014-12-13 12:28:37 +01:00
Gregory Hainaut 18405e2598 gsdx: add goemon comment on some assertion
If someone want to trigger them
2014-12-12 22:31:31 +01:00
Gregory Hainaut cebccea81c gsdx: disable some gl extensions when VMware driver is detected
It is likely the Mesa driver, code seems to have the same issue (separate shader)
2014-12-12 20:44:58 +01:00
Gregory Hainaut 3d071e50ad gtk3: gtk_hscale_new_with_range => gtk_scale_new_with_range 2014-12-10 22:09:21 +01:00
Gregory Hainaut e9233f4698 gtk2: use text rather than image
Require by GTK3
2014-12-10 22:09:21 +01:00
Gregory Hainaut ba9e998ff5 gtk2: port gtk_combo_box to gtk_combo_box_text
The former was deprecated on gtk2.24 (and removed from gtk3)
2014-12-10 22:09:21 +01:00
Gregory Hainaut 29a14f5667 sed -i -e 's/seperately/separately/'
Thanks micove again
2014-12-07 12:46:16 +01:00
Gregory Hainaut 16284d0a59 gsdx: fix a couple of typo
From @micove
2014-12-07 12:12:53 +01:00
Gregory Hainaut 070dce4c83 Merge pull request #356 from PCSX2/issue-fixes
various bug-tracker fixes
2014-12-06 19:48:13 +01:00
Gregory Hainaut 1f5fe7a1db Merge pull request #348 from 3kinox/master
GSdx-ogl linux: std::thread
2014-12-02 22:43:29 +01:00
Gregory Hainaut 4238261784 gsdx-cl: update linux menu config
Try to use some id to be more robust

The best will be to sort the array first
2014-12-02 00:16:35 +01:00