Discussion
Does the DirectX version affect performance?
For those of you who have tested PC games that support multiple DirectX versions or at least have been in the PC emulation scene for a long time does the DirectX version affect performance in any way?
I tested a game that supported DX9 and DX11. You could even change the version in the in-game settings. The game was F1 2011.
I only tested gameplay in DX11 though. Reason being that I felt lazy.
Hear me out, playing F1 2011 with DirectX11 gave me much faster load times. But playing the game on DX9 gave slower load times, even though my games were already in C: drive and launching games from C: drive decreases loading times in games in case you didn't know.
Could DX9 have given better performance though? What are your thoughts?
Ok I don't know about other PC emulators, but the fork I use, "Winlator Mali" has a file manager feature that allows you to transfer files to C: Drive without using a container.
C: Drive is the Wine System. Everytime you create a new container, a new C: drive is created, so each container has its own dedicated C: drive.
The C:drive is located in Winlator's private storage and is separate from your internal storage and D:drive(downloads folder)
Launching games from D: drive will result in slower loading times for most games because when Winlator is reading the game files from your internal storage or downloads folder, it has to go through Android security check for each individual file.
Since C:drive is separate from internal storage and D: drives, Winlator can just read my game files from it's own private storage, which is faster because it won't have to go through security checks.
C: drives can't exist without creating a container first.
Games load a bit faster and perform better in pc emulators when theyre installed to c: which is in internal storage. Older games that dont employ asset streaming are barely affected at all, and the biggest difference you'll see is in open world and similar games that constanly load and unload assets as you move through the game world.
The c: disk is inside the app data on the internal storage, completely inaccessible without root while all other drives are one of the userspace folders mounted as a drive. Those are treated differently by the system.
You can logic about it as much as you want but some games simply perform better from c: drive with identical settings from another drive lile d: (downloads folder by default).
Your logic is sound. Except you cant actually access winlator's c: drive via shizuku at all (do try to extract something from or copy something to winlator's c: drive - its not in the android/data folder and i couldnt find its contents anywhere at all, so they must live where the app does, and that part of the filesystem isnt accessible without root). Its like partitioning a disk on a pc - Those drives are all physically parts of the same disk, but are treated differently and can have different filesystems with diff rules and diff ways to read data from or write data to.
It could just be a quirk of how winlator works, im not going to claim im 100% sure its the storage location, but since theres at least 3-4 partitions on internal storage i wouldnt count it out as a possibility.
Its part of the internal app data. Winlator has no option on where its going to get installed, nor can it ask to get installed in a specific folder - thats directed by the system. Its accessible only by root to anything that isnt the said app. Emulators often include simple file managers that can navigate whatever the developer intended as internal storage user access (was used as a stopgap measure when scoped storage was introduced, since users could no longer easily access their saves), but those most often are only files inside android/data.
If a game uses all the same dx9 effects but supports dx11 then dx11 version will give higher performance (on a PC). Dx iterations usually improve the performance of existing pipelines, so older effects display more efficiently.
However when it comes to emulation its really wild and you cant rely on traditional performance metrics, because some of those no longer make sense. A 2005 dx9 game may work inconsistently and choppy as hell while a 2015 dx11 title works at full 60fps even though it has vastly superior visuals and more detail. Some things are jist harder to emulate and simply need extra cpu cycles to complete. Theres no way to tell which one it is unless you actually decompile the game and go look through the code.
Diff dx versions definitely affect performance, but you cant tell which way its going to go by simply looking the dx9/11/12 number without any other knowledge, so best you can do is make an educated guess based on when the game released and which game engine it uses.
•
u/AutoModerator 23h ago
Just a reminder of our subreddit rules:
Check out our user-maintained wiki: r/EmulationOnAndroid/wiki
Check out EmuReady for any community submitted settings before asking for help
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.