Gregory Hainaut
15220c386a
gsdx sw x64: setup prim miss some optimizations
2016-11-24 23:03:25 +01:00
Gregory Hainaut
e3bfa2be88
gsdx sw: factorize common draw scanline code
...
Ymm inherite from Xmm so it is useless to duplicate the code
Add a parameter to alltrue to test the good register
2016-11-24 23:03:25 +01:00
Gregory Hainaut
211c7745de
gsdx: don't try to correct depth in primitive trace
...
Avoid to go above the maximum size allowed by the format
Issue #1674
2016-11-24 22:24:00 +01:00
FlatOutPS2
417d0a3606
GSdx Merge Circuit: Fix regressions
...
Fixes screen shaking in Tenchu: Wrath Of Heaven, and graphical issues in
NASCAR 09.
2016-11-23 22:14:44 +01:00
Gregory Hainaut
0d275868a5
gsdx x64: quick fix for windows
...
Until we got a full implementation
2016-11-21 18:18:09 +01:00
Gregory Hainaut
37379d5d1d
gsdx sw x64: shuffle memory allocation
...
tex address is a3
vm address is a1
Could help to avoid REX prefix
Reduce prologue/epilogue register copy
Byte code size 41893 => 38912 (on my testcase)
2016-11-20 20:19:13 +01:00
Gregory Hainaut
b76305a0d2
gsdx sw x64: keep the copy of top in the stack for dthe
...
An extra stack access by pixel won't impact perf (only 16 bits game with dithering)
Allow to save 2 registers (a1/a3)
2016-11-20 20:19:13 +01:00
Gregory Hainaut
994274623b
gsdx sw x64: use rip addressing on draw scan line
...
byte code 41997 => 41893
However it will allow to save 2 registers as future optimization
2016-11-20 20:19:12 +01:00
Gregory Hainaut
7c06e87d59
gsdx sw x64: use rip addressing on setup prim
...
byte code: 9017 => 8736
Save a register
2016-11-20 20:19:12 +01:00
Gregory Hainaut
923c297dfc
gsdx sw: vinsert128 opcode require an XMM register
...
Reported as an error on lastest Xbyak
2016-11-20 20:19:12 +01:00
Gregory Hainaut
e674518c4e
Update from xbyak 4.84 to 5.11
...
* bin2hex.h is removed
* vptest/vpblendvb YMM support integrated upsteam
* better support of rip for 64 bits
* AVX512 support (only miss the CPU now)
Local change: add BSD3 clause
2016-11-20 13:21:11 +01:00
Gregory Hainaut
681c09f25c
gsdx sw: catch xbyak exception
2016-11-20 12:58:07 +01:00
Gregory Hainaut
0fd5346860
gsdx x64 linux: only mmap in lower 2GB code segment
...
Allow to use rip addressing
2016-11-20 10:38:15 +01:00
Gregory Hainaut
2252ba1bb7
gsdx: add the detected ISA on the name
...
As a SSE build could potentially uses AVX operations.
2016-11-20 10:38:15 +01:00
Jonathan Li
ef25502491
gsdx build: don't exclude AVX files.
...
Thanks for the patch :)
2016-11-19 17:01:36 +01:00
Gregory Hainaut
cc6d193e1d
gsdx: Relax SSE/AVX constraint on 64 bits
...
The JIT will automatically select the best ISA (only AVX1 so far)
2016-11-19 17:01:29 +01:00
Gregory Hainaut
8fd46e96aa
gsdx sw JIT: dynamically select ISA for SetupPrim
2016-11-19 17:00:33 +01:00
Gregory Hainaut
574a2c774e
gsdx sw JIT: dynamically select between AVX1 and SSE code path (scanline)
2016-11-19 17:00:33 +01:00
Gregory Hainaut
6b78b8f9ce
gsdx sw JIT: dynamically select SSE41 at runtime even on SSE2 build (scanline)
...
It won't give the full SSE41 speed boost but it is better than nothing
2016-11-19 17:00:33 +01:00
Gregory Hainaut
322473c295
gsdx sw: add a code example for gather instruction
...
It will requires a generic (register naming) linear interpolation to use it properly
Gather instruction requires an extra mask register therefore all registers name will be shuffled
Perf wise, initial haswell implementation seems to be microcode emulated.
2016-11-19 17:00:33 +01:00
Gregory Hainaut
2e20693583
gsdx sw x64: restore read texel optimization
2016-11-19 17:00:33 +01:00
Gregory Hainaut
e728a14c19
gsdx sw: factorize color split in split16_2x8
2016-11-19 17:00:33 +01:00
Gregory Hainaut
d58e43edbf
gsdx linux: plug vtune as Windows
2016-11-19 17:00:32 +01:00
Gregory Hainaut
8abf242e2c
gsdx: small x64 printf warning fixes
2016-11-19 17:00:32 +01:00
Gregory Hainaut
051c5c4bf7
gsdx sw x64: small stack optimization on linux
...
mov with the stack pointer require less bytecode
2016-11-19 17:00:32 +01:00
Gregory Hainaut
141c9e9c86
gsdx sw x64: prefer faster 32 bits operation when possible
2016-11-19 17:00:32 +01:00
Gregory Hainaut
a281bda9a6
gsdx sw x64: port the scanline generator on AVX
...
Based on Gabest's work.
* Miss mipmap
Note: dithering info
It is a bit tricky as a2 on linux was rdx register which overlap with fzm (dh/dl)
It might require dedicated windows code
2016-11-19 17:00:32 +01:00
Gregory Hainaut
8e29e09943
gsdx sw x64: update setup prim generator x64 SSE&AVX
2016-11-19 17:00:32 +01:00
Gregory Hainaut
4a47224ac1
gsdx: define the linux x64 ABI
2016-11-19 17:00:32 +01:00
Gregory Hainaut
e31ce87bb3
gsdx: SW JIT debug helper
...
Allow to compare 32/64 bits (and all ISAs too)
Allow to breakpoint (int3)
Print selector info
Print size of buffer and start (disabled by default)
2016-11-19 17:00:32 +01:00
Gregory Hainaut
633f7a1db9
xbyak: add int3 instruction
...
Very useful to stop the JIT
2016-11-19 17:00:32 +01:00
Gregory Hainaut
43b4cfc215
gsdx: separate dump directory for 32/64 bits
2016-11-19 17:00:32 +01:00
Gregory Hainaut
82d12691e1
gsdx: properly check SSE support
...
1/ Check all "levels"
2/ requires AVX for 64 bits
2016-11-19 17:00:32 +01:00
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
Jonathan Li
1530effb29
gsdx: Catch bad_alloc exceptions
2016-11-09 22:41:02 +00:00
Jonathan Li
ae6f26f3ef
gsdx: Skip texture cache read if any dimension is 0
...
Fixes a crash at the PSX logo if either the DX9 or DX11 hardware
renderer is used.
2016-11-09 22:39:53 +00:00
Gregory Hainaut
31b32d3b11
gsdx linux: don't require to hit enter for Texture Offset text entry
...
close #1292
2016-11-08 20:28:42 +01:00
Gregory Hainaut
ed3052dea5
gsdx: remove various assertion
...
Useless or wrong assertion
2016-11-08 18:58:10 +01:00
Gregory Hainaut
5ff9e94a2e
gsdx linux: align mipmapping gui option on Windows
2016-11-06 16:39:40 +01:00
Gregory Hainaut
107251e099
gsdx: sort crc game list
2016-11-06 16:30:51 +01:00
Akash
1547dd4215
GSDX-UI: Add Mipmap combobox
...
Mipmapping is now supported on hardware renderers thanks to Gregory. Please report any observed hardware mipmapping issues on the forums (http://forums.pcsx2.net/Thread-New-feature-Needs-testing-GSdx-HW-mode-Experimental-mipmap-support ) as potentially the HW mipmap code might still have some bugs.
2016-11-05 22:19:32 +05:30
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
Gregory Hainaut
758cf25888
gsdx: wrap bp for block ptr
...
Fix massive flickering of Beyond Good&Evil on SW renderer (HW happily overflow)
2016-11-04 23:03:12 +01:00
Gregory Hainaut
3d65312999
gsdx hw: remove old assert
...
Code is working fine with all formats
2016-11-04 23:02:49 +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
Akash
b871c6b46f
GSDX-TextureCache: Generalize scaling equation
...
Previously the dedicated custom resolution scaling equation was ignored for the second SetScale() call, generalizing the equations will also fix the DMC scaling issue on custom resolution. Also remove unnecessary checks for null on scale factors. The possibility for having a null scale factor value only exists on custom resolution and it will only happen on cases where the output circuit isn't ready yet. So the ideal way would be to handle all the required conditions of output circuit on "m_renderer->CanUpscale()" itself.
2016-11-01 17:54:46 +01:00
Akash
055f236aa5
GSVector: Add constructor to dispatch same values
2016-11-01 17:54:46 +01:00
Gregory Hainaut
aa4b2d9f3a
gsdx sw: wrap GS memory
...
Cost ought to remain small. Worst case is 2 extra "and" operation by group of pixels in scanline renderer
I think PixelAddressN functions are mostly call in the init.
2016-11-01 13:33:11 +01:00
Jonathan Li
ba557e20a4
gsdx:recorder:unix: Fix thread leaking
2016-10-28 18:33:50 +01:00
Jonathan Li
7ab5cb20c8
gsdx: Don't close threads twice
...
CloseThread is called in the GSJobQueue destructor, so don't call it
again in the GSThread destructor.
Fixes #392 , which was caused by a use after free.
Also prevents pthread_join() from being called twice for each thread
on non-Windows operating systems, which is undefined behaviour.
2016-10-28 18:33:35 +01:00