Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upstream backports #985

Open
barbudreadmon opened this issue Nov 19, 2020 · 23 comments
Open

upstream backports #985

barbudreadmon opened this issue Nov 19, 2020 · 23 comments

Comments

@barbudreadmon
Copy link
Collaborator

barbudreadmon commented Nov 19, 2020

The following upstream backports were reverted and need to be ported again (carefully) :
3bc4830
7b3c39e
73f0ee4
5be6e01
2b347a7
e6dd855
756846b
5ee21b6
e66efe8
ef975de
8c5bef7
5620ec7
102b199
0626052
ba2117c
8e6861b
ec81779
f8a2f2d
fc87fa9
b849778
ca2fa42

Other things to backport :
flyinghead/flycast@af6993a
flyinghead/flycast@9d3ee3b
flyinghead/flycast@953200b

I'll do that bit by bit, let me know if there are other upstream commits i should know about

@shantigilbert
Copy link

Just out of curiosity, is there a particular reason why they were reverted?
and would this have anything to do with some gfx glitches on Mali 450 after the following commit 5c9f995 or should I open another issue for that ?

@barbudreadmon
Copy link
Collaborator Author

I started syncing coding standard with upstream some time ago (upstream uses tabs, let's use tabs too, it'll make comparing code way easier), those commits were reverting some of this.
It seems some typos were also hidden in them, ending up breaking stuff.
Idk about mali 450 gfx glitches.

@shantigilbert
Copy link

Thanks for the explanation!

@flyinghead
Copy link

@shantigilbert @barbudreadmon the glitches on Mali 400/450 should be fixed by this: flyinghead/flycast@953200b

It's fresh from yesterday though so use with caution

@barbudreadmon
Copy link
Collaborator Author

@flyinghead thanks for the heads-up !

@emiliodubois
Copy link

Can this be the cause for "ERROR. JAMMA I/O BOARD NOT FOUND" when loading naomi games in retroarch?

@barbudreadmon
Copy link
Collaborator Author

@emiliodubois that one was fixed already

@emiliodubois
Copy link

Thanks, I updated the cores in retroarch and got the update on this one, now everything is working!

@bluestang2006
Copy link

Any way of backporting the Vulkan backend from upstream? The current backend in lr-flycast makes assumptions about the API version based on extensions present but that is not the correct way of determining the API version. Upstream uses the correct method of checking apiVersion through the device. I have been able to get the RPi4 to work on the current backend but I had to patch the code to check for apiVersion.

@blisstik
Copy link

@bluestang2006 - please make a clean branch off the latest master here then submit the pull request, that's the faster way it'll get done.

@barbudreadmon
Copy link
Collaborator Author

Upstream uses the correct method of checking apiVersion through the device

@bluestang2006 if you give me the commit implementing that code, i can add it to the list of commits i have to backport.

@bluestang2006
Copy link

@barbudreadmon Here are the commits. However, the entire backend was rewritten initially here flyinghead/flycast@b1defae
These other 2 are the actual Vulkan 1.1 checks, and also providing the applicable vkApplicationInfo.
flyinghead/flycast@369624b
flyinghead/flycast@d1b29a5

The root cause of the issue is that vkGetPhysicalDeviceProperties2 can't be called by a device that creates a Vulkan 1.0 instance. These devices should be calling vkGetPhysicalDeviceProperties, even though they may have the struct vkGetPhysicalDeviceProperties2 in their driver code. Once they are able to create a 1.1 instance, the device can use vkGetPhysicalDeviceProperties2.

@barbudreadmon
Copy link
Collaborator Author

Oh, that's interesting, i'm wondering if it's related to the pixel buffer size issue with recent nvidia drivers, i'll try to make those backports a priority.

@barbudreadmon
Copy link
Collaborator Author

@bluestang2006 could you check if #998 improve situation on pi4 ? i'll merge it after you confirm

@barbudreadmon
Copy link
Collaborator Author

@shantigilbert i backported the mali 400/450 fix, could you check if things are ok on your side ? it might also be worth checking if it changes something on mali GXX gpus

@shantigilbert
Copy link

@shantigilbert i backported the mali 400/450 fix, could you check if things are ok on your side ? it might also be worth checking if it changes something on mali GXX gpus

Sorry for the late reply.

I haven't been able to test it on a Mali 450, but I did test the latest on the G31 and G52, both worked as they should (on the games I tested) I will test Mali 450 ASAP and report back.

@shantigilbert
Copy link

I tested Mali 450 here are the results:

Atomiswave

Melty Blood: background gfx glitches: 20210102151611556

Fotns looks good:
20210102151841985

Mslug6 looks good:
20210102152137605

Asian Dynamite major gfx glitches:
20210102152424066

Dolphin blue looks good:
20210102153247050

Dreamcast

Soul Calibur background glitches, but playable
20210102152636976

MVC2 Looks good:
20210102152907868

Crazy Taxi looks good:
20210102153041807

@kage2051
Copy link

kage2051 commented Jan 3, 2021

I've heard Mali-450 has issues with depth precision on certain games (Cannon Spike, Dynamite Cop) which seems to be difficult to address since that GPU doesn't support GLES 3.x features.

@barbudreadmon
Copy link
Collaborator Author

barbudreadmon commented Jan 3, 2021

@shantigilbert melty blood, asian dynamite and soulcalibur are regressions ?

@kage2051
Copy link

kage2051 commented Jan 3, 2021

@shantigilbert melty blood, asian dynamite and soulcalibur are regressions ?

Those issues were present before the Mali fix too: EmuELEC/EmuELEC#299

@shantigilbert
Copy link

shantigilbert commented Jan 3, 2021

Yeah those games looked the same, what I don't know is that if they always looked like that. But judging on how old this gpu (no real gles 3) is I don't think they did.

@kage2051
Copy link

kage2051 commented Jan 3, 2021

I remember testing the emulator on a device with PowerVR SGX544 MP2 GPU (which is GLES 2.0 only), and the results in Cannon Spike were pretty similar to what you get on those old Utgard-gen Mali models.

@kage2051
Copy link

This commit flyinghead/flycast@a00aad5 might help devices/PCs with low specs. It's a smart auto frameskip setting with three options:

  • Disabled: no frameskip.
  • Normal: skips frames when GPU is running slow.
  • Maximum: skips frames when CPU and GPU are both running slow.

This new auto frameskipping setting replaces synchronous rendering though, 'normal' auto frameskip retains its function.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants