Closed hizzlekizzle closed 4 years ago
are you on RetroArch discord server?
Never. You can contact me on irc or we can discuss it here.
I tried the diff and now RA + dolphin aborts when closing content. The crash when loading from a playlist seems unchanged.
corrupted size vs. prev_size while consolidating
Aborted
log: ra_dolphin_x.log
I definitely need to setup a linux partition to test this. I've added some logging to see what's going wrong in x context reinitialization (since that seems to be the issue). Can you send log with this diff? x.zip
log: ra_dolphin_x-2.log
Can you remove the previous diff? (the one adding that destroy call.)
log: ra_dolphin_x-3.log
was this pushed into the nightlies? Im having the weirdest issue ever crop up where psx hw is now forcing my video driver to vulkan for no good reason ;p
happens with no other cores, theres no override set, yet i load with open GL, back out to the menu, and my video driver is set to vulkan /boggle
when i close the game/content, its back to ogl again.
@klepp0906 that's the video driver force code in place. I discussed with themaister and twinaphex a solution for it and we came out to a replacement to fix this. However will probably be a follow up to this issue since not completely related to this.
@orbea https://github.com/libretro/RetroArch/pull/9591 I've updated my PR. This solved the crashing issues on my Ubuntu partition. Can you check it works for you too?
ah, thank you for clarifying. It was largely a cause for concern due to timing. I play 99% of my retroarch remotely via steam streaming and anything vulkan used to result in a black screen. Fortunately I found a workaround for that (just yesterday), however I didnt intend to use vulkan in case the issue cropped back up, or if i had to for some other reason.
Thats when I noticed i couldnt get it switched off vulkan now even if i wanted to.
At least now i know its nothing on my end. Appreciate your work on this :)
However will probably be a follow up to this issue since not completely related to this.
This is 100% related to this issue and must be fixed before this issue is closed. The solution is to just remove the relevant code like I told you. Frankly it would be better to revert the code that fixed that misfeature than it would be to leave it in place.
Your PR causes an build issue.
retroarch.c:7836:9: error: use of undeclared identifier 'RETRO_ENVIRONMENT_GET_PREFERRED_HW_RENDER'
case RETRO_ENVIRONMENT_GET_PREFERRED_HW_RENDER:
^
1 error generated.
make: *** [Makefile:213: obj-unix/release/retroarch.o] Error 1
make: *** Waiting for unfinished jobs....
@orbea Rome wasn't built in a day. This is a necessary intermediary step we have to take in order to move forward.
I think @Rinnegatamante can address that compilation error though, but other than that we have to start somewhere when it comes to this issue.
You can either comment out that switch case or update libretro-common with the PR i made. As for the force driver feature, it won't be removed, admins wanted to go this way and you're not in charge to take designs choices here since this is not your project @orbea . If you want to keep having this passive aggressive attitude towards me i'm just going to ignore your messages straight away since i've no time to waste in meaningless discussions.
Guys, let's not have this lead to a major altercation here. We have to deal with a codebase full of legacy code and certain drastic decisions have to be made in order to move forward. Please let's not have this lead to even more arguments, it's already hard enough rewriting this code to begin with.
Let's not have every minor disagreement lead to some standoff.
@Rinnegatamante I'm not sure what you are getting at, but this is not a passive aggressive attitude, its just being blunt that this is a serious issue that needs to be fixed and is directly related to this issue and your PR. Not being able to choose the desired video driver even makes it impossible for developers to test their code.
@twinaphex I agree, it can be addressed in multiple PRs, but it really should be addressed in only one issue (This one).
@orbea OK, then let's just focus on this issue that needs to be addressed before things go further out of hand. I don't want any more blowups. Just state what should be fixed and how and we can put this situation to bed.
OK, then let's just focus on this issue that needs to be addressed before things go further out of hand. I don't want any more blowups
100% agreed, this can be taken one step at a time. I'll be here to test as long as someone more capable is willing to spend time on this.
The issue has already been fixed, that "case" you get in your building process error is related to the solution getting in place. You can disable that portion for now to actually test the linux fix.
The solution will require work on cores side and this is the solution we decided to adopt accordingly with whom is in charge to design RetroArch general way of working.
The issue has already been fixed, that "case" you get in your building process error is related to the solution getting in place. You can disable that portion for now to actually test the linux fix.
I have no idea what you mean here?
The solution will require work on cores side and this is the solution we decided to adopt accordingly with whom is in charge to design RetroArch general way of working.
This is a frontend issue, not a core issue. To be entirely clear not being able to select the desired video driver in the frontend is a blocker for core development and just a very bad idea.
If you want you can add an option to automatically switch video drivers based on the core under the video settings, but it should not be on by default and is not a requirement for this issue. Its much more likely people will be asking why they can't use opengl in beetle-psx than how to get the core to select the desired video driver automatically. And core/content overrides should always take precedence.
@orbea https://github.com/libretro/beetle-psx-libretro/pull/546#event-2714500394 is this good enough for you to understand it requires work on cores side or are you going for long time still to rebut on everything someone tells you?
As for the build error you were having, what i meant is that you could've disabled what the last commit added cause it was related to implementing what's required for RetroArch to handle the driver negotiation with cores. Btw i've pushed another commit that will solve the error straight away.
@Rinnegatamante No its not, new frontends should not break old cores, this is an API change. The bottom line is that this should not force the video driver for any core except maybe as an optional feature or when the video driver is outright not supported (Using vulkan on an opengl only core). Again I stress this is a deal breaker for core development and for at least some users.
I would suggest to squash your PRs so that they only contain working commits, it really matters when it comes to bisecting.
I tested your PR and now it crashes when closing content with dolphin-emu when loading content from the playlist or command-line. I can't start the core in gdb anymore either where it crashes with a garbage backtrace.
Retroarch logs for the crashes? Drivers set before loading content and in dolphin?
I agree that the functionality should be: Only switch driver if core does not support current loaded driver.
@undeadindustries That's what the API change we did does. Btw i don't want to keep talking about this anymore. If you have any further bitching on the subject, join Discord server and contact themaister or twinaphex and bitch with them.
Why you yelling at that random guy?
On Tue, Oct 15, 2019, 4:51 PM Rinnegatamante notifications@github.com wrote:
@undeadindustries https://github.com/undeadindustries That's what the API change we did does. Btw i don't want to keep talking about this anymore. If you have any further bitching on the subject, join Discord server and contact themaister or twinaphex and bitch with them.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/libretro/RetroArch/issues/4804?email_source=notifications&email_token=AEDNLU27MJPSJ6EAU5H5BODQOYULNA5CNFSM4DGYXJXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBKFT2A#issuecomment-542398952, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEDNLU2W336HYT54NUFWZY3QOYULNANCNFSM4DGYXJXA .
@Rinnegatamante Ooook, I guess I didn't understand that. I wasn't bitching.
@jvook Also, not a random guy. I put in a lot of the bounty ;-)
I'm locking this thread for now since obviously people can't behave once again and this kind of behavior steers away promising new contributors.
I will reopen it again in a few days after people have had a cooldown period.
Guys, we all need to play ball here if good things are to happen. If we say to let a situation rest and that it will be addressed, we ask that you please do so. Continuous filibustering is not a good idea especially when it's so easy for things to go from 0 to 11 here. Please dont' make my job as a moderator here unnecessarily harder and let's have this be a hospitable place for all devs.
I believe @Rinnegatamante's solution is quite satisfactory now and the remaining big issues have been sorted out with it. Closing this issue so that the bounty can be collected.
First and foremost consider this:
Description
RetroArch currently behaves unpredictably and unstably when switching to cores that want a context other than what is currently active. This can happen because of video_driver settings being different in a core config override or because a core's core options are telling it to use a different renderer than is active (e.g., GL vs Vulkan)
Expected behavior
One would expect RetroArch to switch to the appropriate video_driver for the core, which the core can request, even if that means tearing the context down completely and rebuilding.
Actual behavior
GL->Vulkan with soft rendered core: Works, crashes when toggling the menu.
GL->Vulkan with HW mednafen psx: Appears to work, loads correctly, the core loads and game loads too but I think it's just falling back to GL. Slang shaders don't work but CG shaders do
GL->Vulkan with HW parallel: Crashes
Vulkan->GL anything Crashes right away
Steps to reproduce the bug
Bisect Results
always
Version/Commit
You can find this information under Information/System Information
all versions
Environment information
Any
This issue combines the complaints and desired functionality from both: https://github.com/libretro/RetroArch/issues/3297 and https://github.com/libretro/RetroArch/issues/4588