Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: CRT Emudriver vulkan and interlaced resolution  (Read 7542 times)

0 Members and 1 Guest are viewing this topic.

Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
CRT Emudriver vulkan and interlaced resolution
« on: June 26, 2020, 06:09:35 am »
Hello,
After creating successfully an arcade cab with groovymame, i created console box using retroarch with native resolution switching and CRTEmudriver.
Some cores like flycast or parallel rely only on Vulkan backend. I ended up encountering a strange bug and i don't know if it's due to my setup or a bug affecting Vulkan.
So my setup :
- Win 10
- Radeon HD 7850
- Calamity's driver Adrenalin 18.5.1
- static modelines

As read in an other post, i follow Calamity's advice and install first latest official AMD radeon driver, and then CRTEmudriver without uninstalling official driver.
This way i get vulkan installed and a fully working 15khz output.

But ! If i try to use any emulator with vulkan backend in fullscreen with an interlaced resolution, i just get a black screen while sound is playing.
On the opposite, a progressive fullscreen resolution is working correctly with vulkan, like 256x224p or 320x240p.

Is anyone here able to use an interlaced resolution in fullscreen with vulkan ?
An easy test is to set desktop at 640x480i, and then launch a game with dolphin in fullscreen...
I really would know if i'm the only one facing this situation...

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #1 on: June 26, 2020, 07:31:40 am »
Yeah, i detected this some months ago but i think it's emulator issue selecting mode.

I have CEMU working fine with vulkan at 640x480i.

EDIT: anyway for Dolphin the better backend it's direct3d in Windows.

« Last Edit: June 26, 2020, 07:34:01 am by psakhis »

Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #2 on: June 26, 2020, 09:01:55 am »
With Cemu you're using real exclusive fullscreen or windowed borderless ?
If so what is your config regarding graphic card and OS ?
Because in my case it's really a problem related to fullscreen vulkan in 480i whatever program or emulator i launch...

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #3 on: June 26, 2020, 10:17:38 am »
I don't know how Cemu implements fullscreen (exclusive vs borderless), in my setup fullscreen it's true....

But isn't relative to Vulkan only, for example on Redream happens too if you don't change at 480i before starts emulator on Opengl.

My setup is: W7x64, ATI HD7750.


Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #4 on: June 26, 2020, 10:44:21 am »
So your card is the same generation as mine... How did you get vulkan working on your setup ?
Did you do as me and install first official drivers from AMD before installing CRTEmu drivers ?
When i launch an emulator in 480i, in fact my desktop is already in 480i too. I must have missed something somewhere...

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #5 on: June 26, 2020, 01:35:34 pm »
I updated manually vulkan driver. See my post http://forum.arcadecontrols.com/index.php/topic,161736.0.html

I'm playing with latest driver with experimental async shaders on Cemu and it's really really fine with my weak gpu.

Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #6 on: June 27, 2020, 01:13:22 pm »
I tried your method before but it never works fort me. Don't know if it's because of Win10 but the only way for me to up to date vulkan and opengl is to first install latest official driver and then install CRTEmu Driver.
For now vulkan + fullscreen 480i is a no go for me... I wonder if someone here successfully manage to have Win10 + CRTEmu driver + fullscreen 480i resolution...
I'm surprised to be the only one facing this...

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #7 on: June 27, 2020, 02:46:07 pm »
It's Dolphin vulkan backend related problem...picking @30i resolution by default, probably you can post to developers.

You can try any other resolution on vulkan with, for example 704x480@60 or 640x483@60, etc assuming you don't have @30 freq modeline in your setup.

But..D3D11 it's large better for shaders than Vulkan on Dolphin...

Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #8 on: June 27, 2020, 05:02:49 pm »
I will follow your advice and test tomorrow with another interlaced resolution.
As i enabled EDID emulation i have a 640x480 30i resolution and you may be right saying vulkan pick this one and fail.
In fact my concern is not really dolphin but retroarch using native resolution. Flycast core is certainly the best emulator for dreamcast but sadly rely only on vulkan backend.
I will let you know when i do some tests !
Thanks for all your precious reply until now !

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #9 on: June 28, 2020, 12:21:04 pm »
Mmmm...i prefer redream for Dreamcast emulation, 1.5.0 stable version runs flawless smooth with true fullscreen exclusive mode

For atomiswave and others naomi based hardware i'm still with demul.

Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #10 on: June 29, 2020, 04:32:21 am »
You were right about vulkan picking the first 640x480 resolution available ! With EDID emulation enabled, first 640x480 resolution is the one @30i, which seems incompatible with vulkan. If i chose another resolution like 704x480@60i there's no problem.
So thank you for highlighting this issue.
Is there a way to delete a modeline in windows ? 640x480@30i is the one generated by edid emulation, and i don't know how to remove this one...

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #11 on: June 29, 2020, 06:40:57 am »
I believe isn't posible...at least i didn't find how do it.

Not appears in vmmaker but seems it's internal windows resolution...if someone knows i will be delete all @30i modes too.


Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #12 on: June 29, 2020, 09:18:04 am »
I guess Calamity could help finding an answer on this... If he's able to create a resolution 640x480@30i with Edid emulation, he should be able to explain how to remove it...  At least i hope !

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #13 on: June 30, 2020, 08:09:04 am »
I don't know why..but now my configuration enables vulkan 640x480@60 by default skipping @30...

Dolphin log
02:43:126 VideoBackends\Vulkan\VulkanContext.cpp:458 I[Video]: Enabling extension: VK_EXT_full_screen_exclusive
02:43:126 VideoBackends\Vulkan\VulkanContext.cpp:475 I[Video]: Using VK_EXT_full_screen_exclusive for exclusive fullscreen.

I'm playing with adapters with autohotkey script and now i can't reproduce the problem  :hissy:

VarSetCapacity(DM,156,0), NumPut(156,&DM,36, "UShort")
DllCall("EnumDisplaySettingsA", "Ptr", 0, "UInt", -1, "Ptr", &DM)
CS := NumGet(DM,108) "x" NumGet(DM,112) " / " NumGet(DM,104) "bit / " NumGet(DM,120) "Hz"
MsgBox, 64, Current Display Setting, %CS%
NumPut(60, DM, 120, "UInt")
DllCall("ChangeDisplaySettingsA", "Ptr", &DM, "UInt", 0)
DllCall("EnumDisplaySettingsA", "Ptr", 0, "UInt", -1, "Ptr", &DM)
CS := NumGet(DM,108) "x" NumGet(DM,112) " / " NumGet(DM,104) "bit / " NumGet(DM,120) "Hz"
MsgBox, 64, Current Display Setting, %CS%


EDIT: i checked supermodel emulator at 640x480@60 and works fine now too...i don't understand nothing...before i had to 704x480
« Last Edit: June 30, 2020, 08:28:47 am by psakhis »

Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #14 on: June 30, 2020, 11:54:47 am »
If you find what you did i will take your advice with pleasure  :lol

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #15 on: June 30, 2020, 03:11:38 pm »
I tested standalone flycast with vulkan too, fine with 640x480@60 now (but redream it's better anyway!!)

I supose some winapi32 call changes something, but i don't know what and surprise me because is persistent after a reboot. Can you try to execute autohotkey script? I don't know if it's compatible with W10...

NumPut(60, DM, 120, "UInt") --> this line forces to 60hz freq and i think this fix the problem...


Dalba

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 54
  • Last login:Yesterday at 10:26:13 am
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #16 on: July 01, 2020, 03:30:37 am »
I tried your script without your success. Until someone is able to explain a way to remove all @30i resolutions, i will continue using workarounds to avoid this problem...

psakhis

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 465
  • Last login:September 24, 2024, 11:54:25 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #17 on: July 01, 2020, 01:38:08 pm »
Before i tried with this script...

I think the issue it's related with display/adapters configuration in windows...i manage 2 options: monitors and adapters connected in the past or emucrt drivers not saves some entry with @60 by default.

#SingleInstance force
SetWorkingDir %A_ScriptDir%
Sleep, 5000
ChangeResolution( (bpp:=32), (breite:=640), (hoehe:=480), (hZ:=60) )     
ChangeDisplayFrequency(60)
Exitapp

ChangeResolution( cD, sW, sH, rR )
{
   VarSetCapacity(dM,156,0), NumPut(156,2,&dM,36)
   DllCall( "EnumDisplaySettingsA", UInt,0, UInt,-1, UInt,&dM ),
   NumPut(0x5c0000,dM,40) NumPut(cD,dM,104), NumPut(sW,dM,108), NumPut(sH,dM,112), NumPut(rR,dM,120)
   Return DllCall( "ChangeDisplaySettingsA", UInt,&dM, UInt,0 )
   }
   
ChangeDisplayFrequency(Frequency) {
   VarSetCapacity(DEVMODE, 156, 0)
   NumPut(156, DEVMODE, 36, "UShort")
   DllCall("EnumDisplaySettingsA", "Ptr", 0, "UInt", -1, "Ptr", &DEVMODE)
   NumPut(0x400000, DEVMODE, 40)
   NumPut(Frequency, DEVMODE, 120, "UInt")
   Return DllCall("ChangeDisplaySettingsA", "Ptr", &DEVMODE, "UInt", 0)
}   

spacorn

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 20
  • Last login:December 18, 2024, 09:26:43 am
  • I want to build my own arcade controls!
Re: CRT Emudriver vulkan and interlaced resolution
« Reply #18 on: September 11, 2024, 05:19:37 pm »
Hey, I know it's an old topic, but I just found this thread googling for a solution to the same issue, and wanted to share my experience in case someone else ends up here doing the same:

I've had this experience using varios versions of crt_emudriver on various brands of consumer TV (Sony Trinitron, Samsung), all of which are capable of 480i but not 480p
I've also experienced this both in Windows 7 and Windows 10

I had the same issue of RetroArch always picking progressive when going fullscreen at 640x480 when using vulkan, rendering the image on the TV unviewable.
This happened everytime I went fullscreen at a 640x480 resolution. Even when I chose this resolution from the menu, before loading any core (so, it was not an issue exclusive to the Flycast core)
However, I didn't have this issue with other video drivers. I switched to d3d11 (on Windows 10), and 640x480 would be set to interlaced every time.

Since I still wanted vulkan for certain core enhancements, and RetroArch doesn't seem to switch video drivers and different screen resolutions by core overrides (at least not while CRT SwitchRes is active), I was willing to settle on having entirely different RetroArch configuration files depending on which system/core I would play, managed by an external launcher.

However, after playing around with the d3d11 driver at 640x480i several times, I tried going back to vulkan and it would now also pick 640x480i!
So, while not a "stable" solution (like outright removing 640x480p from the internal list of available modes), it does seem like the video mode vulkan picks for any given resolution size is affected by which one was the last one used, or maybe the last one working.

If even d3d11 isn't picking 640x480i correctly, these are two things I've often see mentioned as possible fixes:
- In Services, disabling the "AMD External Events Utility" service completely.
- In Display Options, activating the "Hide unavailable video modes" option (Display Options -> Advanced display settings > Display adapter properties for [Display])
« Last Edit: September 11, 2024, 05:45:05 pm by spacorn »