18 April 2020, 08:04 | #1 |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
Fullscreen & shader problems in macOS
I have been using FS-UAE (2.x) application wrappers for years in macOS.
Today I upgraded one of my wrappers to 3.0.2 and while the game launches, I am having problems with the fullscreen setting as well as shaders. 1. The fullscreen problem is illustrated in the attached PNG images. In 2.x my config settings would provide a full screen image. In 3.0.2 the game window only covers part of the screen. Nothing I do to the config will fix it. 2. Shaders - there are no instructions that I can locate as to exactly what shaders are built into 3.0.2 , I can get curvature to work and that is it. I also tried putting a Shaders folder inside my Data folder and placing some shaders from the following sites in there: https://github.com/FrodeSolheim/fs-u...fs-uae/shaders https://github.com/guestrr/FS-UAE-Shaders When loading these shaders I either get an error that the shader cannot be found or the wrapper immediately crashes on launch with a segmentation fault report. I am making sure that the .shader files are in plain text with the appropriate file extension. So I am looking for some trouble-shooting advice on the above. My config: [config] base_dir = $exe/../Resources kickstart_file=a4000.rom amiga_model=A4000/040 fade_in_duration=0 audio_buffer_target_size=24000 accuracy=1 texture_filter=nearest fullscreen=1 fullscreen_height=1440 fullscreen_width=2560 keep_aspect=1 floppy_drive_volume=0 floppy_drive_speed=900 floppy_drive_0=DuckTales1.adf floppy_drive_1=DuckTales2.adf chip_memory=2048 fast_memory=4096 cpu=68040 uae_cpu_multiplier=max |
18 April 2020, 13:57 | #2 |
FS-UAE Developer
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
|
1. Remove fullscreen_width and fullscreen_height options
2. As for shaders: The option shader be either the name of a bundled shader (without .shader extension), or path to a shader in XML Shader Format 1.1, including the .shader file extension. If FS-UAE crashes with a shader enabled, you need to provide at least the config file with the shader option and fs-uae.log.txt for me/us to be able to investigate that. |
20 April 2020, 09:40 | #3 |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
Thanks. Putting aside the shader issue for now, I tried removing both the width and height lines you mentioned. Unfortunately, the same thing also occurs.
If I put the lines back and change the resolution to match my native 'retina' resolution (5120x2880) it also makes no difference. No matter what game I run, or what configuration/machine is emulated, I end up with a game window centered against the top edge of the screen with large black bars on three sides. Strangely, when I launch FS-UAE, I see the Amiga DOS window showing up properly. It is only when a game launches that I get the smaller image displayed. See attachments. Also, I looked in the logs and for some reason (even though I have removed all references to 2560x1440 in my config) the SDL section is seemingly indicating that this resolution is being selected as the default. [VIDEO] Initialize fs_emu_video_dummy_init [VIDEO] Initialize legacy video [FSE] fse_init_video_2 [RENDER] Stretch mode = 2 [RENDER] Scale mode = 1 full-scene anti-aliasing is not requested checking video sync mode not specified: no video sync no video sync (using timers only) [RENDER] Stretch mode = 0 using default video format BGRA using default texture format [VIDEO] Using low latency vsync when full vsync is enabled [VIDEO] Creating window fs_ml_video_create_window keyboard input grab: 305419896 [SDL] Version 2.0.9 (Compiled against 2.0.9) [DISPLAY] 0: 2560x1440+0+0 @60 Monitor - j 0 pos 0 Monitor - j 1 pos 0 Monitor - j 2 pos 0 Monitor - j 3 pos 0 Monitor index 0 flags 15 Monitor: found index 0 for flag 2 Monitor "middle-left" (flag 2) => index 0 [SDL] Defaulting to fullscreen_mode = desktop for SDL 2 automatic input grab: 1 using fullscreen desktop mode setting (fullscreen) video mode 2560 1440 [SDL] CreateWindow(x=0, y=0, w=2560, h=1440, flags=4131) [DISPLAY] Host refresh rate: 60 Hz opengl vendor: ATI Technologies Inc. opengl renderer: AMD Radeon Pro Vega 48 OpenGL Engine opengl version: 2.1 ATI-2.11.21 opengl shading language version: 1.20 |
20 April 2020, 17:48 | #4 |
Registered User
Join Date: Mar 2013
Location: Leipzig/Germany
Posts: 466
|
Add
zoom=autoto your config. It's fine for most games. It was default in FS-UAE 2.x which was a better choice IMHO. Perhaps it comes back in 4.x If "auto" looks wrong somehow you can use zoom=640x400for NTSC like resolution games and 640x512 for PAL 4:3 You can also switch this at runtime with Meta+z. Which is Meta+y in reality on a german keyboard. A bug, I never reported, hehe. Because I use keyboard_key_f11 = action_zoomas a global default anyway... Was a default setting in 2.x as well. Oh, I forgot to mention: don't use pimped Amiga 4000 configs for games that where designed for Amiga 500 unless you want to enter the world of guru. :-) You games will not run faster/better. Last edited by jbl007; 20 April 2020 at 17:53. |
21 April 2020, 05:20 | #5 | |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
Quote:
Now, back to my shader issues. I separately tested built-in and external shaders in each of 2.8 and 3. Basically, most of the built-in shaders will crash FS-UAE on my machine, and I cannot get a single external shader to work either. I know the paths are correct because the logs say so: For external via full path: [SHADERS] Initialize [SHADERS] Checking shader /Users/almeath/Desktop/crt-lottes.shader [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled vertex shader successfully [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled fragment shader successfully [SHADERS] linked shader program successfully [SHADERS] Shader OK [SHADERS] Done loading shader Or for internal .. [SHADERS] Initialize [SHADERS] Checking shader curvature [SHADERS] Checking shader /Users/almeath/Desktop/Duck Tales - The Quest for Gold.app/Contents/MacOS/../Resources/Data/Shaders/curvature.shader [SHADERS] Checking fs-uae.dat:shaders/curvature.shader [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled fragment shader successfully [SHADERS] linked shader program successfully [SHADERS] Shader OK [SHADERS] Done loading shader The logs are also showing that the shaders are loading without errors - but then the app crashes immediately. I have attached full log outputs from 2.8 and 3 along with the corresponding crash reports from macOS (Mojave 10.14.6). It appears to be an SDL2 error .. |
|
21 April 2020, 08:38 | #6 |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
So far, I can only get 'crt', 'curvature', and 'hq2x' to work without crashing.
Last edited by almeath; 21 April 2020 at 08:39. Reason: correction |
23 April 2020, 04:44 | #7 |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
Updating to SDL 2.0.12 has not helped either.. this has me completely stumped.
Can anyone with a Mac please confirm that you can get multiple shaders to work in FS-UAE 3.x , such as lottes etc. , and if so, what are your system specs? |
23 April 2020, 18:22 | #8 | |
Registered User
Join Date: Oct 2017
Location: São Leopoldo / Brazil
Age: 46
Posts: 206
|
Quote:
Mac Mini late 2012, i7, 16 GB RAM. |
|
23 April 2020, 19:45 | #9 |
FS-UAE Developer
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
|
I've confirmed that FS-UAE on macOS crashes when using shaders with multiple passes (requiring the function
glGenFramebuffers). Debugging showed that I got a NULL pointer from OpenGL for glGenFramebuffers. It could be a bug in FS-UAE with regards to OpenGL core vs compatibility profiles (and/or possibly in combination with sucky OpenGL drivers on macOS... they are even deprecated now). Seems to work fine with if I compile with GLEW as an extension helper instead of GLAD, will investigate some more. Last edited by FrodeSolheim; 23 April 2020 at 19:55. |
23 April 2020, 20:40 | #10 |
FS-UAE Developer
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
|
Looks like the problem is something like this: FS-UAE does not ask for a particular OpenGL version, and on many platforms it looks like I get the highest supported version by default. But on macOS I get OpenGL version 2.1 which does not have glGenFramebuffers, and the GLAD loader does not try to load this symbol since this is only available in GL 3.2+. It might work if I specifically request OpenGL version 3.2 when initializing OpenGL via SDL2. Not sure if this coould have negative effects on some other/older systems.
It also works if I just use the EXT_framebuffer_objectextension and use this if the regular framebuffer functions are not loaded. I've written code for this and it looks like it works nicely. Should be a safe fix. Will probably push out a new version with this fix, later. |
24 April 2020, 06:35 | #11 | |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
Quote:
I know Apple makes things very difficult by their insistence on deprecating an open standard they originally helped champion. I suppose in the long run this will be a dead end because they will end up stripping the framework entirely from macOS. At that point it would be Metal or nothing. |
|
24 April 2020, 15:30 | #12 |
FS-UAE Developer
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
|
And it's also a major PITA that whenever I want to release new updates, Apple has made some new changes to how apps are allowed to be distributed. Now they've changed the requirements for app notarization (_again_), and the error messages from their notarization service is often so bad that I have to guess what the problem is, and figure out the solution by trial and error. Seriously, I'm struggling to comprehend how a big company like Apple can make something as low-quality as this system.
Anyway, once I get working / notarized app bundles again, there will be an update. |
24 April 2020, 17:03 | #13 |
Registered User
Join Date: Oct 2017
Location: São Leopoldo / Brazil
Age: 46
Posts: 206
|
Thank you very much for the effort, Frode!
|
25 April 2020, 00:46 | #14 |
FS-UAE Developer
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
|
|
25 April 2020, 08:03 | #15 | |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
Quote:
|
|
26 April 2020, 07:59 | #16 |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
What I have found so far, is that most of the multi-pass shaders that were previously failing to load are now working properly.
Nothing ends up crashing the app like before, however there are some heavy duty / newer shaders that will not load, with the error "failed to compile fragment shader". I suspect it is due to the ancient version of OpenGL in macOS. Some examples of the log outputs are below. Super XBR 6p: [SHADERS] Initialize [SHADERS] Checking shader /Users/almeath/Desktop/super-xbr-6p.shader [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled vertex shader successfully ERROR: 0:117: Invalid call of undeclared identifier 'mat4x3' ERROR: 0:118: Invalid call of undeclared identifier 'mat4x3' ERROR: 0:119: Invalid call of undeclared identifier 'mat4x3' ERROR: 0:120: Invalid call of undeclared identifier 'mat4x3' ERROR: 0:123: Use of undeclared identifier 'c1' ERROR: 0:123: Use of undeclared identifier 'c2' ERROR: 0:123: Use of undeclared identifier 'c3' ERROR: 0:123: Use of undeclared identifier 'c4' ERROR: 0:128: Use of undeclared identifier 'color' ERROR: 0:128: Use of undeclared identifier 'color' ERROR: 0:130: Use of undeclared identifier 'color' WARNING: [SHADERS] Failed to compile fragment shader WARNING: [SHADERS] No shader passes loaded [SHADERS] Done loading shader CRT-guest-sm: [SHADERS] Initialize [SHADERS] Checking shader /Users/almeath/Desktop/crt-guest-sm.shader [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled vertex shader successfully [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled fragment shader successfully [SHADERS] linked shader program successfully [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled vertex shader successfully [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled fragment shader successfully [SHADERS] linked shader program successfully [SHADERS] GL_INFO_LENGTH was 0 [SHADERS] Compiled vertex shader successfully ERROR: 0:107: Invalid call of undeclared identifier 'round' ERROR: 0:107: Use of undeclared identifier 'intfactor' ERROR: 0:107: Use of undeclared identifier 'intfactor' ERROR: 0:108: Use of undeclared identifier 'intfactor' ERROR: 0:109: Use of undeclared identifier 'diff' WARNING: [SHADERS] Failed to compile fragment shader WARNING: [SHADERS] Error occured while loading shader [SHADERS] Done loading shader I realize these are not built-in shaders and I am not requesting that they be made compatible. I am just highlighting it as an observation. I am not an expert on shaders, but it appears that any shader using 'fragmentation' will not work. |
26 April 2020, 09:40 | #17 |
Registered User
Join Date: May 2017
Location: EU
Posts: 342
|
Thanks for the feedback. Crt-sm might be simple to fix, super-xbr could require a larger overhaul.
I hope this version is fine with your setup, will update the repo if it's working. |
26 April 2020, 14:27 | #18 | |
Registered User
Join Date: Oct 2017
Location: São Leopoldo / Brazil
Age: 46
Posts: 206
|
Quote:
|
|
27 April 2020, 07:51 | #19 | |
Registered User
Join Date: Apr 2020
Location: Australia
Posts: 11
|
Quote:
I have not tried all the shaders in your repository, but if you can implement the fix where needed that would be very much appreciated. |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Problems docking FS-UAE on macOS Sierra | amiga_Forever | support.FS-UAE | 5 | 26 January 2017 22:46 |
HLSL shader problems + suggestion | TysonJacobs | support.WinUAE | 3 | 07 December 2013 17:04 |
HQ2X Shader lost when changing Fullscreen / Windowed mode [Solved] | Marskilla | support.FS-UAE | 4 | 26 September 2012 14:54 |
Fullscreen at 1024 x 768 problems | emuola | support.WinUAE | 19 | 26 November 2006 04:02 |
Problems w/ fullscreen 60Hz vsync since v0.8.22R2 | ethylene | support.WinUAE | 0 | 01 March 2003 02:35 |
|
|