A Hotkey to Change ISOs Would Be Nice

Support and general discussion.
Post Reply
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

I don't how easy this would be to implement, but it would be really nice if there was a hotkey to open a dialog to change CD images so you don't have to exit fullscreen to swap discs.

Would be especially helpful for multiple CD games so you don't have you break the immersion factor when changing discs by going back to windowed mode
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by leilei »

Sooga wrote: Wed 20 Jul, 2022 9:23 am Not to be mean but this project is out of touch with reality sadly by people so obessed with 'realism' they are sacrificing usefulness (cough) multi threading (cough).
name one emulator that multi-threads emulation of a single-threaded CPU.
wishusknight
Posts: 38
Joined: Mon 18 Jul, 2022 9:07 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by wishusknight »

There are emulators that have very limited use of SMT. Though most times its limited to things like post processing video filters or midi playback devices like an MT32 or other things that are considered external to the core emulation itself. Emulating different chips in a computer on different threads ends up killing the overall performance in overhead of thread message passing. The amiga emulator UAE is one example where this would be quite prohibitive. This may only be feasible with absurd amounts of TSX optimizing and using extended page tables. But vga, sound, storage and IO peripherals are only a few % of an emulators processing. Far as I know its impossible to multithread non-smt based processor emulation. Full stop.
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

leilei wrote: Wed 20 Jul, 2022 8:10 pm
Sooga wrote: Wed 20 Jul, 2022 9:23 am Not to be mean but this project is out of touch with reality sadly by people so obessed with 'realism' they are sacrificing usefulness (cough) multi threading (cough).
name one emulator that multi-threads emulation of a single-threaded CPU.
About any of them that added Vulkan support have some level of multi-threading when using that API because AMD designed it to be well optimized for multi-core CPUs. Running Dolphin on a CPU with weak single core like an FX is night and day between DX and Vulkan.
User avatar
unreal9010
Posts: 160
Joined: Sat 14 Nov, 2020 8:20 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by unreal9010 »

Sooga wrote: Wed 20 Jul, 2022 9:23 am Oh God would it! But this fourm is generally not open to suggestions sadly unless your 'in' if you know what I mean but I totally agree with your thread about a hot key function: (Does a baby voice) "It will breeeeeeeeeak reeeeeeeeeealism!" It's fine to a point to want PCEM to be realistic hardware but you gotta know when to make sacrifices for efficiency.

Not to be mean but this project is out of touch with reality sadly by people so obessed with 'realism' they are sacrificing usefulness (cough) multi threading (cough).

The best is a mix between 'real' and modern for function: Not sure hwo else to word it.
This forum has always been open to suggestions (such as this one), however not to impossible demands that some people have made over the years (e.g. GeForce 3 etc.).
And no, the project itself is not out of touch with reality. Already now certain things are omitted in order not to have a too big performance impact.
Prioritizing speed over accuracy would result in frequent crashes and glitches. PCem was designed in a way so it would be able to emulate machines and their components, not to offer quick solutions that would allow you to run individual apps on newer machines.
Bear in mind that these things are very difficult to do, especially if not all information is available in the datasheets. A LOT of free time needs to be sacrificed to get things done properly. The project is free and open source and anybody can contribute to it. Developers and contributors have already achieved much despite having no official obligation to contribute a single line of code. This emulator was the first one to offer Pentium II and Voodoo 3 emulation.
You will have to accept the project as it is.
eddman
Posts: 74
Joined: Wed 09 Feb, 2022 9:30 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by eddman »

CryptidWorks wrote: Sat 23 Jul, 2022 2:21 am
About any of them that added Vulkan support have some level of multi-threading when using that API because AMD designed it to be well optimized for multi-core CPUs. Running Dolphin on a CPU with weak single core like an FX is night and day between DX and Vulkan.
This forum has been through this "multi-thread" nonsense enough times already. Vulkan has nothing to do with CPU emulation; dolphin's CPU code is single-threaded, because GC/Wii games are single threaded, because GC/Wii are single core (No, the "Dual core" option does not split the CPU emulation). The reason vulkan improves performance on weak host CPUs mainly has to do with performing less draw calls, therefore less load on the CPU. Also, no, direct3d 11 IS multi-threaded.

This topic has gone beyond beating a dead horse. It's also completely off-topic here.
wishusknight
Posts: 38
Joined: Mon 18 Jul, 2022 9:07 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by wishusknight »

CryptidWorks wrote: Sat 23 Jul, 2022 2:21 am About any of them that added Vulkan support have some level of multi-threading when using that API because AMD designed it to be well optimized for multi-core CPUs. Running Dolphin on a CPU with weak single core like an FX is night and day between DX and Vulkan.
Those are HLE. PCEM is not. Nor is it capable of it.
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

eddman wrote: Sat 23 Jul, 2022 3:21 pm
CryptidWorks wrote: Sat 23 Jul, 2022 2:21 am
About any of them that added Vulkan support have some level of multi-threading when using that API because AMD designed it to be well optimized for multi-core CPUs. Running Dolphin on a CPU with weak single core like an FX is night and day between DX and Vulkan.
This forum has been through this "multi-thread" nonsense enough times already. Vulkan has nothing to do with CPU emulation; dolphin's CPU code is single-threaded, because GC/Wii games are single threaded, because GC/Wii are single core (No, the "Dual core" option does not split the CPU emulation). The reason vulkan improves performance on weak host CPUs mainly has to do with performing less draw calls, therefore less load on the CPU. Also, no, direct3d 11 IS multi-threaded.

This topic has gone beyond beating a dead horse. It's also completely off-topic here.
It's been through it several times because it's a unavoidable fact we're approaching a hard wall with the single-threaded performance of x86 CPUs so emulation that doesn't leverage multi-threading is going to get left behind since the point you can't brute force it with fast enough single-threaded performance will be reached
eddman
Posts: 74
Joined: Wed 09 Feb, 2022 9:30 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by eddman »

CryptidWorks wrote: Mon 25 Jul, 2022 11:18 pm
It's been through it several times because it's a unavoidable fact we're approaching a hard wall with the single-threaded performance of x86 CPUs so emulation that doesn't leverage multi-threading is going to get left behind since the point you can't brute force it with fast enough single-threaded performance will be reached
It seems you do not understand what I wrote. You cannot multi-thread emulation of a single-core CPU; it simply doesn't work.
wishusknight
Posts: 38
Joined: Mon 18 Jul, 2022 9:07 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by wishusknight »

CryptidWorks wrote: Mon 25 Jul, 2022 11:18 pm It's been through it several times because it's a unavoidable fact we're approaching a hard wall with the single-threaded performance of x86 CPUs so emulation that doesn't leverage multi-threading is going to get left behind since the point you can't brute force it with fast enough single-threaded performance will be reached
Multithreading a cpu like you are thinking, is dang near impossible for even the best out there. No emulator on the planet does this except for old mainframe emulators where things are modular and in distinctive IP blocks where thread messaging isn't branchy, and most common OPS can be trapped without stalling other threads. Modern VMs use virtualization technologies like AMD-V and VT-x on intel to give nearly native performance of the host by doing instruction level pass through. But on an emulator like PCEM this would be impractical and still be able to emulate genuine hardware. In which case, just use Virtual Box or VMWare Workstation. You can limit execution share and approximate the performance you want on Virtual Box.. Personally I think PCEM should not delve past the classic Pentium. But Glide support is a big plus too.
eddman
Posts: 74
Joined: Wed 09 Feb, 2022 9:30 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by eddman »

wishusknight wrote: Tue 26 Jul, 2022 7:22 am Modern VMs use virtualization technologies like AMD-V and VT-x on intel to give nearly native performance of the host by doing instruction level pass through. But on an emulator like PCEM this would be impractical and still be able to emulate genuine hardware. In which case, just use Virtual Box or VMWare Workstation. You can limit execution share and approximate the performance you want on Virtual Box.. Personally I think PCEM should not delve past the classic Pentium. But Glide support is a big plus too.
I'm not a virtualization expert, but it still would not make a single-threaded guest application to utilize more than one core; it'd simply make that one core more effective.

In any case, it cannot be applied to PCem, as you also mentioned.
wishusknight
Posts: 38
Joined: Mon 18 Jul, 2022 9:07 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by wishusknight »

eddman wrote: Tue 26 Jul, 2022 7:41 am
I'm not a virtualization expert, but it still would not make a single-threaded guest application to utilize more than one core; it'd simply make that one core more effective.

In any case, it cannot be applied to PCem, as you also mentioned.
I didn't say it would multi-thread a virtual core. Though I think I may have not been very clear in my wording there. I am often accused my my work mates of English being my second language, while not actually having a first language........

I am not particularly an expert either but I do use VM systems quite extensively on the daily from bare metal hypervisors like ESX to client based emulators like Workstation and VirtualBox to vintage emulators like PCEM, UAE, MiniVmac and multi system emulators like QEMU. I do know a decent bit about how they work and even tweak them to an extent. But by no means am I a programmer or engineer.

The best way I could tell someone why this would not work for PCEM, is to say that all visors that use VT-x will always use fairly specific and a very narrow curated list of virtual hardware in the guests. Which can approximate the basic functions of the real thing but are no where near being as close to 1:1 as emulators like PCEM (even though PCEM is no where near 1:1 either, but has a different focus of functionality). They make a lot of compromises to the virtual hardware to make it all work nicely for instruction passthrough while being seamless to any OS used in the guest. A good example is to model VirtualBox's implementation of the PIIX southbridge functionality in HDL and compare it to current efforts to model the real thing... They are so alien to each other that any form of bios compatibility or diversity of virtual hardware is impossible. So now you need different firmwares. Which negates part of PCEM's charm, Your virtual vga needs to also follow this kind of path as well. And at this point, the PCEM team is taking VirtualBox and just changing its branding banner.

About as diverse as it gets in VirtualBox for example is offering a choice of PIIX or ICH-9 hardware controller options. Which is basically having a switch for Legacy OS or Modern OS. And basic soundblaster 16 or AC97 software sound. With the soundblaster support being very limited and incomplete once you actually get digging into it, and can actually prevent modern OS's from being virtualized properly. VGA support is also not so great for VESA applications and will sometimes require modification. These options are only there, because desktop visors like VMWare Workstation used these as standard before the days of instruction virtualization in hardware. And its the bare minimum to make vintage commercial applications functional.

The advantage these compromises have is speed, even on hardware that does not support VT-x fully. And if you have the right hardware, playing old Direct3d games on win98 and 2000 actually works pretty dang well. Which is why I suggested to the other person here to just use virtualbox if they want more performance. PCEM doesn't seem to be the right emulator for what they are wanting to do.

People also forget they can use more than one kind of emulator... lol. I use PCEM mostly for 386 nostalgia trips even though I still have the real hardware in my closet. I find its Pentium MMX and higher emulation rather pointless really, except for the Voodoo2 component I suppose. But it is nice that it is there non-the-less. But anything that needs decent Pentium level emulation and performance has worked in VirtualBox for me just fine. But when it comes to wanting a more authentic experience with the older hardware, PCEM is unreal.
User avatar
Arjen42
Posts: 131
Joined: Fri 11 Jun, 2021 3:15 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by Arjen42 »

wishusknight wrote: Tue 26 Jul, 2022 10:07 pm About as diverse as it gets in VirtualBox for example is offering a choice of PIIX or ICH-9 hardware controller options. Which is basically having a switch for Legacy OS or Modern OS. And basic soundblaster 16 or AC97 software sound.
Just to make everyone is one the same page, what's the difference between PIIX or ICH-9 (or what computers had them? So high level explanation.) Which are considered the last Legacy OS and the first Modern OS? Ok, the Sound Blaster 16 and AC97 are pretty obvious, but you may this explain if you like to.
wishusknight wrote: Tue 26 Jul, 2022 10:07 pm People also forget they can use more than one kind of emulator... lol.
Yes, I try this to explain this on this the people on this forum all the time. Well, I actually did this only once or twice, but I would if this forum was much bigger. To us it is pointless to install Windows 98 on PCem to play to start Alley Cat.
wishusknight wrote: Tue 26 Jul, 2022 10:07 pm I use PCEM mostly for 386 nostalgia trips even though I still have the real hardware in my closet. I find its Pentium MMX and higher emulation rather pointless really, except for the Voodoo2 component I suppose. But it is nice that it is there non-the-less. But anything that needs decent Pentium level emulation and performance has worked in VirtualBox for me just fine. But when it comes to wanting a more authentic experience with the older hardware, PCEM is unreal.
Yes, it's a lot about nostalgia. Computers where more like computers in the old days.

I have also other emulators installed, like Arculator. Sometimes I boot it up, click around, and then shut it down. There's very little nostalgia for me here. This is much about curiosity.

Also if you want a better than that you might want to look at something this: https://www.youtube.com/watch?v=USHvvSbYmJA, while this might look to good to be true, and might not exactly be what some people it this forum want, this would cost about a game console, while PCem would be free.

Personally I don't really care much about the late nineties to the mid two thousands games. Currently some of those games are remastered or other games exist which are similar and are just other on almost every one front. Other games at that time just work on a modern operating system like Windows 10 or 11, like Sid Meijer's Pirates! (2004). But those could be the exception. Why would this game work on a current operating system while other do not? Could it be due better programmers?
wishusknight
Posts: 38
Joined: Mon 18 Jul, 2022 9:07 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by wishusknight »


Just to make everyone is one the same page, what's the difference between PIIX or ICH-9 (or what computers had them? So high level explanation.) Which are considered the last Legacy OS and the first Modern OS? Ok, the Sound Blaster 16 and AC97 are pretty obvious, but you may this explain if you like to.
It is the southbridge chip contained on the motherboard that did most of the IO and other menial tasks on modern pc's. The Piix is found on the intel 430TX, 440LX and 440BX chipsets from the Pentium MMX to Pentium 2 era. And is pretty strait forward in its operation. It is the last of its kind before intel went to "hub architecture" (ICH). And contains all the legacy stuff found in almost every system upto that point with rather genaric IDE and IO port handling. Yet is modern enough to have a standardized USB implementation, SMP and APIC support. And it can also encompass other things in the package unrelated to the southbridge like AGP Texture mapping.

ICH9 was a much later southbridge found on computers from about the core 2 duo era. And has most more modern functions to handle EFI and other technologies like PCI express and SATA. These things allow greater integration and interaction with the guest and host PC's in ways the PIIX can't. And is especially valuable for using hardware PCI Passthrough to allow a guest os to take direct control of a physical peripheral on the host PC, like a sound card or video card.

There are also many differences in how the disk adapters and base device functions work and present themselves to the guest OS.

Yes, I try this to explain this on this the people on this forum all the time. Well, I actually did this only once or twice, but I would if this forum was much bigger. To us it is pointless to install Windows 98 on PCem to play to start Alley Cat.
Its like having too many choices on the mcsdonalds menu.
Yes, it's a lot about nostalgia. Computers where more like computers in the old days.

I consider DOS itself to be the 6th best dos game of all time.
I have also other emulators installed, like Arculator. Sometimes I boot it up, click around, and then shut it down. There's very little nostalgia for me here. This is much about curiosity.
Also if you want a better than that you might want to look at something this: https://www.youtube.com/watch?v=USHvvSbYmJA, while this might look to good to be true, and might not exactly be what some people it this forum want, this would cost about a game console, while PCem would be free.

Personally I don't really care much about the late nineties to the mid two thousands games. Currently some of those games are remastered or other games exist which are similar and are just other on almost every one front. Other games at that time just work on a modern operating system like Windows 10 or 11, like Sid Meijer's Pirates! (2004). But those could be the exception. Why would this game work on a current operating system while other do not? Could it be due better programmers?
I have an industrial 86PC based ISA SBC that runs at 333mhz. Among several other SBC's authentic to their time periods. I used to work with them alot in the 80s and 90s. So I have collected a few. There are some very interesting configurations out there for sure. It is also kind of neat to just swap a card to have a different computer. Though I do have other complete systems of various capabilities.

I also have a Retro-PI and complete Mister stack. The latter of which is used as much as any modern console in the house.

I am pretty nostalgic for late 90s games occasionally as that was the golden era of lan parties. Lots of good times there. But having gone through the headache of windows 98 once in my life, I usually try to avoid that again.
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

wishusknight wrote: Tue 26 Jul, 2022 7:22 am =In which case, just use Virtual Box or VMWare Workstation. You can limit execution share and approximate the performance you want on Virtual Box.. Personally I think PCEM should not delve past the classic Pentium. But Glide support is a big plus too.
I also have a Windows XP VMWare machine setup on my PC. it works great until it doesn't since.

The problem you're missing with virtualization is that since it relies on weird simulated GPU driver instead of a direct passthrough 3D hardware acceleration in games only works with a tiny handful of titles that play nice with it. So far Quake II and Heretic II are the only two games I've gotten working in hardware mode on it.

Others range from instantly crashing to booting into levels but having major rendering and texture glitches garbing the graphics. The only saving grace is that since I'm basically directly feeding it two cores of a 5600X it can run a lot of things really fast in software mode.
wishusknight
Posts: 38
Joined: Mon 18 Jul, 2022 9:07 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by wishusknight »

CryptidWorks wrote: Fri 29 Jul, 2022 7:08 am
wishusknight wrote: Tue 26 Jul, 2022 7:22 am I also have a Windows XP VMWare machine setup on my PC. it works great until it doesn't since.

The problem you're missing with virtualization is that since it relies on weird simulated GPU driver instead of a direct passthrough 3D hardware acceleration in games only works with a tiny handful of titles that play nice with it. So far Quake II and Heretic II are the only two games I've gotten working in hardware mode on it.

Others range from instantly crashing to booting into levels but having major rendering and texture glitches garbing the graphics. The only saving grace is that since I'm basically directly feeding it two cores of a 5600X it can run a lot of things really fast in software mode.
I must be a bit luckier here. I have had better success with getting a few titles up to dx9 running with VMWare. Though my library that I actually play is admittedly rather small. And open GL games have been much easier as well. Though it was still no match for having a dedicated machine for the task.

The way to solve the problem for certainty is to lobby VMWare to enable passthrough for their desktop products. Having to use ESXi as a foundation is a bit pita. And the 3d implementation for the virtual drivers is not fully baked yet. Albeit it is improving.
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

wishusknight wrote: Fri 29 Jul, 2022 10:27 pm I must be a bit luckier here. I have had better success with getting a few titles up to dx9 running with VMWare. Though my library that I actually play is admittedly rather small. And open GL games have been much easier as well. Though it was still no match for having a dedicated machine for the task.

The way to solve the problem for certainty is to lobby VMWare to enable passthrough for their desktop products. Having to use ESXi as a foundation is a bit pita. And the 3d implementation for the virtual drivers is not fully baked yet. Albeit it is improving.
As pissy as VMWare spaces tend to get when you suggest more gaming focused features like better GPU virtualization that's a tall order, as nice as it would be.
User avatar
Arjen42
Posts: 131
Joined: Fri 11 Jun, 2021 3:15 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by Arjen42 »

It's a shame this discussion has gone off topic. I would like to ask the moderator to split these message off to its own topic.

Back on topic. I could think wouldn't be to hard to change the CD-ROM to a cd-changer, with hot keys like Ctrl-1 to Ctrl-0. If you have multiple games that need this you would probable need more emPC's, unless your have enough slots.
Sooga
Posts: 43
Joined: Tue 05 Jul, 2022 12:54 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by Sooga »

CryptidWorks wrote: Mon 25 Jul, 2022 11:18 pm
eddman wrote: Sat 23 Jul, 2022 3:21 pm
CryptidWorks wrote: Sat 23 Jul, 2022 2:21 am
About any of them that added Vulkan support have some level of multi-threading when using that API because AMD designed it to be well optimized for multi-core CPUs. Running Dolphin on a CPU with weak single core like an FX is night and day between DX and Vulkan.
This forum has been through this "multi-thread" nonsense enough times already. Vulkan has nothing to do with CPU emulation; dolphin's CPU code is single-threaded, because GC/Wii games are single threaded, because GC/Wii are single core (No, the "Dual core" option does not split the CPU emulation). The reason vulkan improves performance on weak host CPUs mainly has to do with performing less draw calls, therefore less load on the CPU. Also, no, direct3d 11 IS multi-threaded.

This topic has gone beyond beating a dead horse. It's also completely off-topic here.
It's been through it several times because it's a unavoidable fact we're approaching a hard wall with the single-threaded performance of x86 CPUs so emulation that doesn't leverage multi-threading is going to get left behind since the point you can't brute force it with fast enough single-threaded performance will be reached
What does that mean a hard wall with single threaded performance of X86 CPU's?
User avatar
Arjen42
Posts: 131
Joined: Fri 11 Jun, 2021 3:15 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by Arjen42 »

Sooga wrote: Fri 12 Aug, 2022 8:08 pm What does that mean a hard wall with single threaded performance of X86 CPU's?
PCem only emulates single-socket single-core single-threaded cpu's. This means only one program or more precisely only thread of a process can run at any time. It is very difficult to emulate such a cpu using multiple threads. This is because it's impossible to split the work the emulated cpu has to do in multiple threads. This is because each instruction has to be done in order.

Another reason is that most software and games from that time * are not designed to advantage of multiple threads. Yes, games designed for Windows 95 and up do are multiple threaded, but only the main thread does all the real work and the other threads are just helper threads that don't do very much. Windows 95, 98, and ME do support multi threading but do not multiple sockets, multiple cores, or multi-threaded cpu's (HT or SMT). Earlier versions of Windows NT do support multiple sockets, but are less suitable for games.

In order to create an emulator that takes advantage of multi-threading it has either emulate a multi cpu machine. Or it has to simulate the components that the cpu is made of. Only the designers of cpu's are capable of doing that effectively.

* Before 2010 I believe, but I'm not sure, this may probably be very optimistic.
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

Sooga wrote: Fri 12 Aug, 2022 8:08 pm
CryptidWorks wrote: Mon 25 Jul, 2022 11:18 pm
eddman wrote: Sat 23 Jul, 2022 3:21 pm

This forum has been through this "multi-thread" nonsense enough times already. Vulkan has nothing to do with CPU emulation; dolphin's CPU code is single-threaded, because GC/Wii games are single threaded, because GC/Wii are single core (No, the "Dual core" option does not split the CPU emulation). The reason vulkan improves performance on weak host CPUs mainly has to do with performing less draw calls, therefore less load on the CPU. Also, no, direct3d 11 IS multi-threaded.

This topic has gone beyond beating a dead horse. It's also completely off-topic here.
It's been through it several times because it's a unavoidable fact we're approaching a hard wall with the single-threaded performance of x86 CPUs so emulation that doesn't leverage multi-threading is going to get left behind since the point you can't brute force it with fast enough single-threaded performance will be reached
What does that mean a hard wall with single threaded performance of X86 CPU's?

I mean we're reaching a point where unless a huge change-up happens with x86 architecture to improve power efficiency enough to start cranking clock speeds stupid high we're going to get less and less single core performance gains per new CPU generation. It's why high core count CPUs are becoming the norm and game engines are leaning more and more into multi-threading
wishusknight
Posts: 38
Joined: Mon 18 Jul, 2022 9:07 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by wishusknight »

CryptidWorks wrote: Tue 16 Aug, 2022 9:02 am
Sooga wrote: Fri 12 Aug, 2022 8:08 pm
CryptidWorks wrote: Mon 25 Jul, 2022 11:18 pm

It's been through it several times because it's a unavoidable fact we're approaching a hard wall with the single-threaded performance of x86 CPUs so emulation that doesn't leverage multi-threading is going to get left behind since the point you can't brute force it with fast enough single-threaded performance will be reached
What does that mean a hard wall with single threaded performance of X86 CPU's?

I mean we're reaching a point where unless a huge change-up happens with x86 architecture to improve power efficiency enough to start cranking clock speeds stupid high we're going to get less and less single core performance gains per new CPU generation. It's why high core count CPUs are becoming the norm and game engines are leaning more and more into multi-threading
in software emulation yes. The next logical step was instruction passthrough and emulation in hardware. Which is out of scope and impossible for PCEM.
eddman
Posts: 74
Joined: Wed 09 Feb, 2022 9:30 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by eddman »

CryptidWorks wrote: Tue 16 Aug, 2022 9:02 am ...unless a huge change-up happens with x86 architecture to improve power efficiency enough to start cranking clock speeds stupid high...
Increasing single-core performance only by increasing the clock speed is gone; we are past pentium 4 days. The main method for increasing is by designing a core micro-architecture with a higher IPC. Alder lake clocks about the same as previous gens and yet has a much higher single-core performance.

A 12900k does about 5.2 GHz under single threaded loads, and a 10900k does about 5.1 GHz, very close, and yet the former performs about 47% better in CB 23 ST.
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

wishusknight wrote: Sun 28 Aug, 2022 12:06 pm
CryptidWorks wrote: Tue 16 Aug, 2022 9:02 am
Sooga wrote: Fri 12 Aug, 2022 8:08 pm

What does that mean a hard wall with single threaded performance of X86 CPU's?

I mean we're reaching a point where unless a huge change-up happens with x86 architecture to improve power efficiency enough to start cranking clock speeds stupid high we're going to get less and less single core performance gains per new CPU generation. It's why high core count CPUs are becoming the norm and game engines are leaning more and more into multi-threading
in software emulation yes. The next logical step was instruction passthrough and emulation in hardware. Which is out of scope and impossible for PCEM.
Every single other emulator for anything heavier than a Super Nintendo fully supports hardware acceleration so that is completely false. If the dev wanted to he could 100% find a way to make use of it. At the very least GPU emulation could be offloaded to it in order to free up resources for CPU emulation.


eddman wrote: Sun 28 Aug, 2022 1:18 pm
CryptidWorks wrote: Tue 16 Aug, 2022 9:02 am ...unless a huge change-up happens with x86 architecture to improve power efficiency enough to start cranking clock speeds stupid high...
Increasing single-core performance only by increasing the clock speed is gone; we are past pentium 4 days. The main method for increasing is by designing a core micro-architecture with a higher IPC. Alder lake clocks about the same as previous gens and yet has a much higher single-core performance.

A 12900k does about 5.2 GHz under single threaded loads, and a 10900k does about 5.1 GHz, very close, and yet the former performs about 47% better in CB 23 ST.
There only so much you can do to increase IPC by reducing the size of the transistors or implementing 3D layering to architectures, and synthetic benchmarks that work under controlled conditions don't always reflect real world performance. Gaming benches show a difference that's far less pronounced:

https://www.youtube.com/watch?v=15Qmgiqf5Jk
eddman
Posts: 74
Joined: Wed 09 Feb, 2022 9:30 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by eddman »

CryptidWorks wrote: Fri 02 Sep, 2022 3:36 am Every single other emulator for anything heavier than a Super Nintendo fully supports hardware acceleration so that is completely false. If the dev wanted to he could 100% find a way to make use of it. At the very least GPU emulation could be offloaded to it in order to free up resources for CPU emulation.
Maybe it can be done, maybe not. The goal of PCem is emulation of the actual hardware, not emulating the applications. You cannot emulate hardware through rasterized rendering on a GPU. Most console emulators can leverage the host GPU because they are not emulating actual video hardware.

The only possible way for PCem (which was also talked about by the dev a while back) would be to run the video card emulation code as a compute load on the GPU, but that's a big undertaking and not even guaranteed to be accurate enough to work; unless it can be done partially in conjunction with the CPU, and even then it's not certain. In any case, it's not what you think it is.

Also, PCem already emulates video cards on a separate thread from the main thread. Offloading video emulation would not do much to increase CPU emulation performance. Perhaps there would be an improvement, because of having a lower load on other host CPU components like caches, interconnects, etc. but it won't be significant.

PCem is simply limited by single core performance, and there isn't really anything that can be done about it on the software side.
CryptidWorks wrote: Fri 02 Sep, 2022 3:36 am There only so much you can do to increase IPC by reducing the size of the transistors or implementing 3D layering to architectures, and synthetic benchmarks that work under controlled conditions don't always reflect real world performance. Gaming benches show a difference that's far less pronounced:

https://www.youtube.com/watch?v=15Qmgiqf5Jk
It's certainly far better to use the smaller transistors to design a higher IPC microarchitecture, than it is to merely increase the clocks. Relying on clock speed alone is an extremely inefficient way of improving performance, since power consumption does not increase linearly as clocks go up.

Besides, the performance gain you get by higher clocks is very much microarchitecture dependent. Some microarchitectures simply do not scale well, because of factors like pipeline depth, etc. Cranking up the clocks for these cases not only would provide less and less performance increase, it might actually hurt it at a certain threshold.

This is why CPU companies eventually design new higher IPC microarchitectures when they get access to new nodes.

Game performance is an absolutely terrible metric for gauging CPU performance, since a lot of other PC components are involved.

CB is not an artificial load benchmark, if that's what you mean. It's based on the commercial Cinema 4D rendering application. It performs actual rendering on the CPU and then assigns a score. Yes, it might not be a completely accurate metric, but it's far better than using games.

Let's compare single threaded POV-ray results then, which is not synthetic, for 10900k and 12900k: 552, 855.

The point is, the main method of achieving higher performance is by increasing the IPC, not relying on failed Perntium 4 era tactics.
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

eddman wrote: Fri 02 Sep, 2022 6:34 am
CryptidWorks wrote: Fri 02 Sep, 2022 3:36 am Every single other emulator for anything heavier than a Super Nintendo fully supports hardware acceleration so that is completely false. If the dev wanted to he could 100% find a way to make use of it. At the very least GPU emulation could be offloaded to it in order to free up resources for CPU emulation.
Maybe it can be done, maybe not. The goal of PCem is emulation of the actual hardware, not emulating the applications. You cannot emulate hardware through rasterized rendering on a GPU. Most console emulators can leverage the host GPU because they are not emulating actual video hardware.

The only possible way for PCem (which was also talked about by the dev a while back) would be to run the video card emulation code as a compute load on the GPU, but that's a big undertaking and not even guaranteed to be accurate enough to work; unless it can be done partially in conjunction with the CPU, and even then it's not certain. In any case, it's not what you think it is.

Also, PCem already emulates video cards on a separate thread from the main thread. Offloading video emulation would not do much to increase CPU emulation performance. Perhaps there would be an improvement, because of having a lower load on other host CPU components like caches, interconnects, etc. but it won't be significant.

PCem is simply limited by single core performance, and there isn't really anything that can be done about it on the software side.
You can't innovate if you don't try. I'm sure at some point someone also said emulating the complete shitshow that the PS3's cell processor at all would be impossible but look at RPCS3 now.



eddman wrote: Fri 02 Sep, 2022 6:34 am
CB is not an artificial load benchmark, if that's what you mean. It's based on the commercial Cinema 4D rendering application. It performs actual rendering on the CPU and then assigns a score. Yes, it might not be a completely accurate metric, but it's far better than using games.
Games are much more accurately represent the complexity and variance involved in a real-world load than a canned rendering routine in a canned benchmark. Particularly in regards to PCEM when there's a lot of totally random shit being thrown at it related to what the user doing on the emulated machine at any given moment.

As for shrinking the node, we're already at 5mm as it is with Intel planning on starting development of 3mm chips next year and that's pretty close to the limit with silicon.
eddman
Posts: 74
Joined: Wed 09 Feb, 2022 9:30 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by eddman »

CryptidWorks wrote: Fri 02 Sep, 2022 7:40 am You can't innovate if you don't try. I'm sure at some point someone also said emulating the complete shitshow that the PS3's cell processor at all would be impossible but look at RPCS3 now.

Games are much more accurately represent the complexity and variance involved in a real-world load than a canned rendering routine in a canned benchmark. Particularly in regards to PCEM when there's a lot of totally random shit being thrown at it related to what the user doing on the emulated machine at any given moment.

As for shrinking the node, we're already at 5mm as it is with Intel planning on starting development of 3mm chips next year and that's pretty close to the limit with silicon.
There's nothing to innovate by the PCem dev in regard to making emulation of single-core CPUs multi-threaded. It's not done by any other emulator that emulates a single-core system, and it cannot be done here. PS3's CPU is multi-core (the SPEs are not part of the main core and are their own independent processing blocks), therefore its CPU emulation can be multithreaded.

Games do not represent PCem either, since PCem runs on the CPU only. Even if rendering performance is not a fully accurate representative, it's still a far better metric to use for comparing raw CPU performance than games, specially when the latter heavily rely on the GPU.

That's not even the main point. The point was to show that single-core performance is mainly improved by increasing the IPC.

No matter how small a node gets, the efficent and proper way of increasing performance would be by designing a higher IPC core, not solely increasing the clock speed.

Besides, if we reach a point where nodes cannot get smaller, clock speeds cannot be increased beyond a certain point anyway. We'd be stuck at a certain single-core performance level and that would be that.
wishusknight
Posts: 38
Joined: Mon 18 Jul, 2022 9:07 pm

Re: A Hotkey to Change ISOs Would Be Nice

Post by wishusknight »

CryptidWorks wrote: Fri 02 Sep, 2022 3:36 am
Every single other emulator for anything heavier than a Super Nintendo fully supports hardware acceleration so that is completely false. If the dev wanted to he could 100% find a way to make use of it. At the very least GPU emulation could be offloaded to it in order to free up resources for CPU emulation.
Cycle accurate emulation is impossible with instruction pass-through, its not hardware acceleration or offloading in that sense. It is purley a mechanism that traps and executes instructions by bypassing an abstraction layer. That's it. Also it requires the virtual client to have emulated devices that are specifically coded for it and requires a custom coded firmware for the client. Ones you have done all that, bam, you have virtual box. So go use that.

Actual hardware acceleration, well.... that is more like actual simulation. And this is done with an FPGA. The other form of "hardware emulation" is done through HLE. Which is what PS3 emulation had to do before it could do anything. The CPU and Cell are still done software through the host cpu or GPGPU Compute.

PCEM does none of these things. There is a reason why the VM hosts that have passthrough only have a very small amount of curated hardware options.
User avatar
CryptidWorks
Posts: 141
Joined: Fri 26 Apr, 2019 7:11 am

Re: A Hotkey to Change ISOs Would Be Nice

Post by CryptidWorks »

I'm kind of done with this circular argument that's of no benefit to either of us, so back on topic:

How about that quick-swap function?
Post Reply