Gregory Hainaut
49d5c4260f
gsdx state: post fix depth tracing
...
The main FindMinMax methods is perf critical so instead I created a separate function
to ensure the constness of the depth
Fix letter regression on Xenosaga3
2016-11-11 23:39:34 +01:00
Gregory Hainaut
ed3052dea5
gsdx: remove various assertion
...
Useless or wrong assertion
2016-11-08 18:58:10 +01:00
Akash
58ed49f3c9
GSDX: Clean up warnings on MSVC
...
* Explicitly cast w_pages and h_pages into uint32.
* Prevent signed/unsigned comparison by converting lod into unsigned integer, honestly how coud a mipmapping level be negative?
2016-11-05 10:28:04 +01:00
Akash
437afbbbf3
GSDX-PCRTC: Move Saturation hack to displayrect()
...
Fixes custom resolution scaling on Tribes aerial assault.
2016-11-01 17:54:46 +01:00
Gregory Hainaut
defdd27987
gsdx: set m_nativeres to true in replayer
...
Otherwise you can't compare draw call between native and upscaled
2016-10-16 16:48:23 +02:00
Gregory Hainaut
24684033ca
gsdx: enable clut_load_before_draw option on Harley Davidson (CRC hack)
...
At least the game is good until we find how the HW really behave
2016-10-14 20:47:18 +02:00
Gregory Hainaut
fbf7ccbdda
gsdx: by default new will throw std::bad_alloc
...
So catch/use it and don't bother with GSDXErrorOOM
2016-10-13 20:44:59 +02:00
Gregory Hainaut
c2777ff989
gsdx state: split IsMipmapActive in 2 pieces
...
This way we can test if a draw call requires a triliner filtering.
It will be used in next commit to implement automatic trilinear
2016-10-13 20:16:38 +02:00
Gregory Hainaut
b695e0065a
gsdx mipmap: use a 3 state option
2016-10-13 20:16:38 +02:00
Gregory Hainaut
c66004bbb2
gsdx: hidden option to better support dual context clut
...
Option is on by default. Just a safety net in case of regression
Fix clut issue on virtua fighter (SW) and harley davidson (SW/HW).
2016-10-06 19:08:21 +02:00
Gregory Hainaut
9cd4984f7c
gsdx debug: more log
2016-10-06 18:56:31 +02:00
Gregory Hainaut
d827497403
gsdx: let's handle illegal 4 bits format too
...
In doubt if some games use them.
2016-10-05 22:07:49 +02:00
Gregory Hainaut
9b93c07339
gsdx: Handle illegal 8 bits format. Found the most silly GS dev trick
...
Fix Berserk #1526 Well done guys but we're more clever than you ;)
So instead to mask the color channels as any guy that RTFM, they decided to use the illegal 8H frame format
2016-10-05 22:07:43 +02:00
Gregory Hainaut
6fd46eb36a
gsdx: move the validation of the texture format before the draw call
...
Avoid false positive when game write dummy stuff
2016-10-05 22:07:23 +02:00
Gregory Hainaut
677f890c5c
gsdx debug: static GSState::s_n
...
This way you can access the current draw call anywhere. Very useful for debug.
2016-10-05 09:43:24 +02:00
Gregory Hainaut
61333ecb40
gsdx debug: trace register access
...
I didn't include high frequency register such as vertex stuff
main goal is to give the possibility to trace the texture/clut update
2016-10-05 09:43:24 +02:00
Gregory Hainaut
cf13cccb1e
gsdx: avoid useless spamming of INVALID PSM in release build
2016-10-02 18:21:41 +02:00
Gregory Hainaut
c5f086b385
gsdx ate: separate the code that depends on TEST.AFAIL
...
Easier to read and allow a switch optimization
Add a shortcut for the common ATST_ALWAYS case
2016-10-01 19:20:38 +02:00
Gregory Hainaut
8d4fadb3c8
Revert "gsdx state: TEX0 write behavior might depends on the context"
...
This reverts commit b34243fa7b
.
Unfortunately we have a regression on GT4. I'm doomed
2016-09-28 20:00:56 +02:00
Gregory Hainaut
adb8be3287
gsdx: add/update comment
...
Need to investigate why the number of vertex is different in upscaled resolution
2016-09-28 19:41:12 +02:00
Gregory Hainaut
749037346c
gsdx: report an error if PSM is invalid
2016-09-28 19:41:12 +02:00
Gregory Hainaut
97172f5e51
gsdx debug: count draw call in a different way
...
* Always do +1 before the draw call
* Prefix texture name with i (as input) to keep them before the FB
Goal is to ensure that all renderers share the same draw call value.
2016-09-28 19:41:11 +02:00
Gregory Hainaut
b34243fa7b
gsdx state: TEX0 write behavior might depends on the context
...
Game: harley davidson
* write tex0 ctx0
* write tex0 ctx1
* draw ctx 0
Previous GSdx behavior will load the clut every write of TEX0. In the
above case the draw will take the wrong clut.
To be honest, it could be a wrong emulation on the EE core emulation.
The hardware likely got a single clut (1KB cache is quite expensive)
So clut loading must be skipped if the context is wrong.
Next draw will use the ctx1 clut so I apply TEX0 when the context is switched
Please test harley davidson :)
v2: detect context switch from UpdateContext function
V3: always set m_env.CTXT[i].offset.tex, avoid crash (Thanks to FlatOutPS2 that spot the issue)
V4: move bad psm correction code (rebase put it in the wrong place)
2016-09-27 10:04:09 +02:00
Gregory Hainaut
be9995bd1e
gsdx mipmap: improve robustness to avoid potential crash
2016-09-26 09:27:03 +02:00
Gregory Hainaut
78b2848622
gsdx: factorize the TEX0 generation for mipmap
2016-09-25 11:51:48 +02:00
Gregory Hainaut
d89b09427f
gsdx: gl logging is only available in MTGS thread
...
Fix crash in debug build
2016-09-22 17:54:44 +02:00
Gregory Hainaut
6966e08306
gsdx: move alpha test optimization in base class
...
One code for all renderers :)
2016-09-19 08:48:32 +02:00
Gregory Hainaut
1a1d6ab478
gsdx: handle the invalid format 0x3
...
International Super Star Soccer seems to use it.
It could be a core bug, in doubt uses the likely expected standard 0x13
2016-09-14 19:22:45 +02:00
Gregory Hainaut
029d74f855
gsdx: add an auto flush hack to implement a Read Write GS effect.
...
It impacts all renderers. It ought to fix issue in GTA radiosity,
Shadows in Jak series. (note shadows will suck in upscaling)
Implementation is really brutal. Expect a massive slow down, but at least we can test the effect
easily.
Normally perf impact will remain reasonable if the game doesn't use a Read-Write effect
Performances number are welcomes (my guess is really awful in HW mode, slow in SW mode).
You can enable it with "UserHacks_AutoFlush = 1"
2016-09-08 17:25:59 +02:00
Gregory Hainaut
c9a1558c60
gsdx: save the blit buffer register when a transfer is started
...
Fix motocross mania missing texture. Close #1319
As far as I understand, transfer is initialized in DIR. But the real
write only occured later so the blit buffer could have been overwritten
by a new value.
BLIT 0 13700
TREG 40 40
DIR 0 0
BLIT 0 13f00 <=== the bad guy
Write! ... => 0x3f00 W:1 F:C_32 (DIR 00), dPos(0 0) size(64 64)
v2: set a value in m_tr.m_blit for load state
2016-09-01 09:59:38 +02:00
Gregory Hainaut
90707f8d4e
gsdx: avoid aliasing issue
...
Extend GSVector to support float move
Initial code likely used integer move for performance reason. However due to
the nan correction, register is now in float domain.
2016-08-14 20:48:34 +02:00
Gregory Hainaut
0dcce91a6e
Merge pull request #1504 from ssakash/RemoveFunction
...
GSDX: Remove GetDeviceSize()
2016-08-08 16:15:07 +02:00
Akash
bc24e90070
GSDX: Remove GetDeviceSize()
...
It's not used anywhere and it doesn't seem needed.
2016-08-07 12:43:03 +05:30
Gregory Hainaut
e9e1b33884
gsdx: log a nice string instead of the hex format of PSM
2016-08-03 18:07:54 +02:00
Gregory Hainaut
25bc2dff07
gsdx: dump and log EE texture read
...
It gives a visual opportunity to detect a bad read of the texture cache
2016-07-14 19:45:06 +02:00
Akash
e05e7bee82
GSDX: Add proper detection of internal resolution
2016-06-19 17:10:03 +05:30
Gregory Hainaut
a9c18c57e4
gsdx option: use the new GetConfig* function
...
v2:
add PSX stuff
ssakash review
2016-05-28 10:07:27 +02:00
Jonathan Li
db81925c4b
Merge pull request #1335 from turtleli/freebsd
...
Support FreeBSD
2016-05-25 18:55:51 +01:00
Jonathan Li
571432a7aa
gsdx:freebsd: Fix compilation
2016-05-21 13:34:18 +01:00
Akash
2166980f91
GSDX: Calculate dimensions of rectangle after merge
...
* Properly display rectangle size after passing through merge circuit on
GS Dumps and GS Frame titlebar.
2016-05-19 15:53:49 +05:30
Akash
58b43dbb6c
GSDX: Rework video mode detection code
...
* Use some nice enums instead of macros
* properly detect 720P/1080I separately.
* Some code cleanup, extended variable names and added few comments
2016-05-19 14:02:50 +05:30
Gregory Hainaut
37c7fa7663
gsdx: add draw exception (OOM and Recoverable)
...
The exception will free the unused (but allocated) texture aka the emergency break ;)
Recoverable could be useful for unsupported draw call
2016-05-05 17:47:32 +02:00
Gregory Hainaut
c8dddfed06
gsdx hack: move m_skip and m_userhacks_skipdraw to GSState level
...
Avoid to push argument to call IsBadFrame
2016-05-05 16:22:14 +02:00
Gregory Hainaut
21d1bd48ec
gsdx hack: move the CRC setup into a separate function
...
In order to reduce a bit the overhead of IsBadFrame called each draw calls
2016-05-05 16:03:48 +02:00
Gregory Hainaut
60267790a1
gsdx: move (most) of the hw hack into a separate file
...
GSState.cpp was really too big
2016-04-30 12:24:08 +02:00
Gregory Hainaut
e195e67a48
gsdx: move Metal Gear Solid CRC to DX level
...
OpenGL is near perfect :)
2016-04-29 17:34:17 +02:00
Gregory Hainaut
df70b8bb0e
gsdx: fix Q NaN value
...
Avoid potential undefined results
2016-04-26 19:09:32 +02:00
Gregory Hainaut
cb8088216b
Merge pull request #1281 from PCSX2-Alpha/NTSC_saturation
...
GSDX: Remove some unnecessary/dubious hacks
2016-04-21 09:28:30 +02:00
Gregory Hainaut
59ef668fd2
Merge pull request #1222 from PCSX2/gsdx-black-fmv
...
Gsdx black fmv
2016-04-21 09:25:36 +02:00
Gregory Hainaut
4611264ce3
gsdx: add CRC hack for Nocturne PAL
...
Reduce depth transfer to the real size of the game. Otherwise
we need to handle a mix of color/depth transfer.
2016-04-11 16:04:04 +02:00