Mini benchmark program
#1
I have been tossing this idea around in my head lately. I am considering writing a small program that would act as a PCSX2 benchmark. Or more correctly, a "can I run it and how well" type program. It would run a few CPU and GPU tests and then return a result, telling you how well you should expect PCSX2 to work, and possibly what settings to use to improve your experience(e.g. whether to use any speedhack, or what resolution to set, etc)

I'm still brainstorming on it, but I wouldn't wanna do it without the devs approving of course.

If I did do it, it would be a nice little tool to have, as it would basically serve as an adjunct to the "Will PCSX2 run fast on my computer?" thread, and hopefully cut down on a lot of the "What are the best settings for my computer?" thread.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply

Sponsored links

#2
(06-08-2014, 07:55 AM)Blyss Sarania Wrote: I have been tossing this idea around in my head lately. I am considering writing a small program that would act as a PCSX2 benchmark. Or more correctly, a "can I run it and how well" type program. It would run a few CPU and GPU tests and then return a result, telling you how well you should expect PCSX2 to work, and possibly what settings to use to improve your experience(e.g. whether to use any speedhack, or what resolution to set, etc)

I'm still brainstorming on it, but I wouldn't wanna do it without the devs approving of course.

If I did do it, it would be a nice little tool to have, as it would basically serve as an adjunct to the "Will PCSX2 run fast on my computer?" thread, and hopefully cut down on a lot of the "What are the best settings for my computer?" thread.

It would be a nice tool to have. I know the BIOS would be a goot test platform if it were a bit heavier on the CPU and GPU do to everyone having it to test with. If you can make a benchmark that will benchmark hardware so that we know what to expect then that would be great.
[Image: gmYzFII.png]
[Image: dvedn3-5.png]
Reply
#3
Well see it would be separate from PCSX2. It wouldn't require a BIOS or run any PS2 type stuff. That way it could save people the trouble of dumping their BIOS and whatnot if it wasn't gonna work. So many people ask before they even try.

What I would do is write a routine to perform various calculations on the CPU and one to render a simple scene on the GPU. I would generate a number for CPU and GPU from the tests. Then I would need a few people to run it for me, and I would compare the output to the data on Passmark. Since I already know from experience how the numbers on Passmark relate to PCSX2 performance. That would let me understand how my numbers scale. At that point, I would write a formula to basically align the benchmark output into a scale of how well things would work.

I think I might call it PCSX2 Hardware Adviser or something(with permission of course!)
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#4
(06-08-2014, 08:04 AM)Blyss Sarania Wrote: Well see it would be separate from PCSX2. It wouldn't require a BIOS or run any PS2 type stuff. That way it could save people the trouble of dumping their BIOS and whatnot if it wasn't gonna work. So many people ask before they even try.

What I would do is write a routine to perform various calculations on the CPU and one to render a simple scene on the GPU. I would generate a number for CPU and GPU from the tests. Then I would need a few people to run it for me, and I would compare the output to the data on Passmark. That would let me understand how the numbers scale with performance. At that point, I would write a formula to basically align the benchmark output into a scale of how well things would work.

I think I might call it PCSX2 Advisor or something(with permission of course!)

yeah, it's true that a lot of people post before even trying pcsx2. If you need help with testing I'm almost always available. Just send me a PM on here or on Steam when you need me. BTW is it going to stress just one core? If it does then turbo boost might alter the results by a decent margin.
[Image: gmYzFII.png]
[Image: dvedn3-5.png]
Reply
#5
As far as the core thing, I hadn't considered turbo boost affecting it like that. Good point. However, I do sorta know how to do multithreading in FB, and I hadn't decided if it would be single or multi threaded yet. That brings up another question: Does the single thread performance on passmark come from a test that stresses one core, or all cores?
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#6
(06-08-2014, 08:10 AM)Blyss Sarania Wrote: As far as the core thing, I hadn't considered turbo boost affecting it like that. Good point. However, I do sorta know how to do multithreading in FB, and I hadn't decided if it would be single or multi threaded yet. That brings up another question: Does the single thread performance on passmark come from a test that stresses one core, or all cores?

A work around for the turbo boost issue is you possibly run some random calculations in the background on anything other than the first thread. So if I have a quad core you would do the main benchmarking on core0 and give a small load to core1,2,3 to prevent turbo boost from being activated.

When I was running performance mark 8 I was wondering about how the STP was calculated, but I don't have an answer to that.
[Image: gmYzFII.png]
[Image: dvedn3-5.png]
Reply
#7
Well it's just as easy for my CPU benchmarking routine to be in a function, and spawn that function multiple times in a threaded way. Since the data doesn't have to communicate, there is no complicated issue of race conditions or cross thread communication. I just invoke the function N times and wait til they all complete.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#8
(06-08-2014, 08:19 AM)Blyss Sarania Wrote: Well it's just as easy for my CPU benchmarking routine to be in a function, and spawn that function multiple times in a threaded way. Since the data doesn't have to communicate, there is no complicated issue of race conditions or cross thread communication. I just invoke the function N times and wait til they all complete.

That's true. It's up to you on how you implement it.
[Image: gmYzFII.png]
[Image: dvedn3-5.png]
Reply
#9
Well, again I wanna wait for dev input before doing anything. There are some ways that this could complicate things. For instance if my program isn't very accurate, it would give false results, leading to people being upset and possibly blaming the devs etc. Of course, I wouldn't release it unless I was very sure it was accurate, but the point still stands.
[Image: XTe1j6J.png]
Gaming Rig: Intel i7 6700k @ 4.8Ghz | GTX 1070 TI | 32GB RAM | 960GB(480GB+480GB RAID0) SSD | 2x 1TB HDD
Reply
#10
I think the main problem is that you should mimic the code of pcsx2. That would require writing some assembly code. You should probably test some SSE/AVX functions and how well they perform. But I don't know if you really can say something about pcsx2 performance in general...

Keep in mind that there are games that work only in software mode which require a completely different setup than hardware mode games. Additionally there are some very cpu/gpu-intense games.

And in the end different games require different speedhacks. Especially concerning MTVU: It is not only checking the amount of cores but also the game. I don't know if you can write a general program to solve that problem.

Don't you think linking to passmark and saying above 1k is a reasonable threshold is just fine?
Reply




Users browsing this thread: 1 Guest(s)