Poll: AVX1 64 bits vs AVX1 32 bits
You do not have permission to vote in this poll.
slower : - 10%
5.56%
2 5.56%
same : +/- 5%
27.78%
10 27.78%
faster : + 10%
36.11%
13 36.11%
much faster : + 20%
13.89%
5 13.89%
on fire : + 50%
16.67%
6 16.67%
Total 36 vote(s) 100%
* You voted for this item. [Show Results]

GS - Software mode: Wanna bet on 64 bits performance
#1
I want to do a break on GSdx dev. So I started to look at the 64 bits port of the SW renderer of GSdx

Based on Gabest's initial/partial implementation I made huge progress on the implementation. Here the status so far
* AVX1 only (as initial Gabest's code was AVX)
* Linux only (Windows/Linux ABI aren't compatible, but it won't be too difficult to port)
* no mipmap
* broken linear filtering but I think I spot the issue
* others bugs (I suspect one is related to 16 bit frame buffer)

Nevertheless, some gs dumps render correctly. Once I manage to fix the linear filtering, I will try to do some early benchmark. Do you want to bet on the performance difference. Test will be done with 0 rendering thread on AVX/Haswell @ 3GHz.

For the record, here the difference between the instruction set on 32 bits
SSE2: process 4 pixels, require extra mov, require extra operation to extract/insert element
SSE41: process 4 pixels, require extra mov (can insert/extract to/from SSE register)
AVX1: process 4 pixels (close of SSE4.1 but use 3 register instruction to avoid mov)
AVX2: process 8 pixels

Steam Stat:
SSE2: 100%
SSE4.1: 87.20%
AVX1:72.56%
Note: I'm not sure it worth to support SSE2/SSE4.1 JIT x64 on GSdx. A C reference implementation is available.

Sponsored links

#2
Voting the same Tongue But it's going to depend if you can do any memory optimisations within GSDX for 64bit, I don't think beyond that it will be much use, personally anyway.
[Image: ref-sig-anim.gif]

#3
Quote:can do any memory optimisations within GSDX for 64bit
What kind of optimization. You mean using more memory ?
#4
(11-16-2016, 01:17 PM)gregory Wrote: What kind of optimization. You mean using more memory ?

No idea, I'm just talking drivel based on how Dolphin got extra speed out of their emulator Tongue2 But using more memory could be an option.
[Image: ref-sig-anim.gif]

#5
I'll bet same. What do I win if I guess correctly?? Tongue
[Image: newsig.jpg]
#6
(11-16-2016, 02:43 PM)Bositman Wrote: I'll bet same. What do I win if I guess correctly?? Tongue

10 prestigious internet points Tongue
[Image: ref-sig-anim.gif]

#7
Ohmy The stakes are high
[Image: newsig.jpg]
#8
You got an achievement trophy Wink Sigh, gamers those days Tongue2

Otherwise I can offer a pre-release (Linux) gsdx build Wink

Quote: No idea, I'm just talking drivel based on how Dolphin got extra speed out of their emulator. But using more memory could be an option.
Oh. The memory trick is useful to emulate a 4GB virtual space with various mirroring. As the matter of fact, I have something similar for the GS mem to wrap above 4MB. But I replaced it with various modulo ("and" due to power of 2). To be honest, I'm not sure the "memory" side could be improved on GSdx.
However, x64 got 16 GPR + 16 AVX registers. So it could remove various mov (from/to stack) operations. It could help on some loops.

I'm really curious of the benchmark outcome Wink
#9
(11-16-2016, 03:59 PM)gregory Wrote: I'm really curious of the benchmark outcome Wink

So am I, but I'm not expecting much.  This is more of a requirement in order to move the emulator to 64bits in the future, which may bring the previously said improvements Smile  Not to mention making linux users happier lol
[Image: ref-sig-anim.gif]

#10
Yes it would make people happy (let's hope). Besides, it would also mean that GSdx can be purely developed on 64 bits (with 64 bits debugger, driver etc). Not ideal but a step forward.




Users browsing this thread: 1 Guest(s)