RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Enhanced performance of MAMEdev MAME in X11?!?!

    Scheduled Pinned Locked Moved Ideas and Development
    mamex11open glperformancegpu
    29 Posts 6 Posters 4.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      George @George
      last edited by

      Run through EmulationStation with video set to 640x480.

      Parameters: 
      Executing: SDL_VIDEO_KMSDRM_CRTCID=87 SDL_VIDEO_KMSDRM_MODEID=24 /opt/retropie/emulators/mame/mame "outrun"
      Reading translation file English: 1 strings, original table at word offset 7, translated table at word offset 9
      Loaded 0 translations from file English
      Starting plugin data...
      Starting plugin hiscore...
      Attempting load of mame.ini
      Parsing mame.ini
      Attempting load of mame.ini
      Parsing mame.ini
      Attempting load of horizont.ini
      Attempting load of arcade.ini
      Attempting load of raster.ini
      Attempting load of source/segaorun.ini
      Attempting load of outrun.ini
      Available videodrivers: x11 KMSDRM RPI dummy 
      Current Videodriver: KMSDRM
      	Display #0
      		Renderdrivers:
      			    opengl (0x0)
      			 opengles2 (0x0)
      			  opengles (0x0)
      			  software (0x0)
      Available audio drivers: 
      	alsa                
      	sndio               
      	dsp                 
      	disk                
      	dummy               
      Build version:      0.224 (mame0224)
      Build architecure:  
      Build defines 1:    SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1 
      Build defines 1:    LSB_FIRST=1 MAME_NOASM=1 
      SDL/OpenGL defines: SDL_COMPILEDVERSION=2009 USE_OPENGL=1 
      Compiler defines A: __GNUC__=8 __GNUC_MINOR__=3 __GNUC_PATCHLEVEL__=0 __VERSION__="8.3.0" 
      Compiler defines B: __unix__=1 
      Compiler defines C: __USE_FORTIFY_LEVEL=0 
      Enter init_monitors
      Adding monitor screen0 (640 x 480)
      Leave init_monitors
      Enter sdlwindow_init
      Using SDL native texturing driver (SDL 2.0+)
      Loaded opengl shared library: <default>
      
      Hints:
      	SDL_FRAMEBUFFER_ACCELERATION             (NULL)
      	SDL_RENDER_DRIVER                        (NULL)
      	SDL_RENDER_OPENGL_SHADERS                (NULL)
      	SDL_RENDER_SCALE_QUALITY                 (NULL)
      	SDL_RENDER_VSYNC                         (NULL)
      	SDL_VIDEO_X11_XVIDMODE                   (NULL)
      	SDL_VIDEO_X11_XINERAMA                   (NULL)
      	SDL_VIDEO_X11_XRANDR                     (NULL)
      	SDL_GRAB_KEYBOARD                        (NULL)
      	SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS         (NULL)
      	SDL_IOS_IDLE_TIMER_DISABLED              (NULL)
      	SDL_IOS_ORIENTATIONS                     (NULL)
      	SDL_XINPUT_ENABLED                       (NULL)
      	SDL_GAMECONTROLLERCONFIG                 (NULL)
      	SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS     (NULL)
      	SDL_ALLOW_TOPMOST                        (NULL)
      	SDL_TIMER_RESOLUTION                     (NULL)
      	SDL_RENDER_DIRECT3D_THREADSAFE           (NULL)
      	SDL_VIDEO_ALLOW_SCREENSAVER              (NULL)
      	SDL_ACCELEROMETER_AS_JOYSTICK            (NULL)
      	SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK   (NULL)
      	SDL_VIDEO_WIN_D3DCOMPILER                (NULL)
      	SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT      (NULL)
      	SDL_VIDEO_MAC_FULLSCREEN_SPACES          (NULL)
      	SDL_MOUSE_RELATIVE_MODE_WARP             (NULL)
      	SDL_RENDER_DIRECT3D11_DEBUG              (NULL)
      	SDL_VIDEO_HIGHDPI_DISABLED               (NULL)
      	SDL_WINRT_PRIVACY_POLICY_URL             (NULL)
      	SDL_WINRT_PRIVACY_POLICY_LABEL           (NULL)
      	SDL_WINRT_HANDLE_BACK_BUTTON             (NULL)
      Leave sdlwindow_init
      Enter sdl_info::create
      Leave renderer_sdl2::create
      window: using renderer opengl
      renderer: flag SDL_RENDERER_ACCELERATED
      renderer: flag SDL_RENDERER_TARGETTEXTURE
      Audio: Start initialization
      Audio: Driver is alsa
      Audio: frequency: 44100, channels: 2, samples: 512
      sdl_create_buffers: creating stream buffer of 22528 bytes
      Audio: End initialization
      Keyboard: Start initialization
      Input: Adding keyboard #0: System keyboard (device id: System keyboard)
      Keyboard: Registered System keyboard
      Keyboard: End initialization
      Mouse: Start initialization
      Input: Adding mouse #0: System mouse (device id: System mouse)
      Mouse: Registered System mouse
      Mouse: End initialization
      Joystick: Start initialization
      Joystick: End initialization
      Searching font Liberation Sans in -. path/s
      font Liberation Sans|Regular is not TrueType or BDF, using MAME default
      Region ':maincpu' created
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip ECD
      unzip: /home/pi/RetroPie/roms/mame/outrun.zip has no ZIP64 ECD locator
      unzip: read /home/pi/RetroPie/roms/mame/outrun.zip central directory
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      Region ':subcpu' created
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      Region ':gfx1' created
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      Region ':sprites' created
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      Region ':segaic16road' created
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      Region ':soundcpu' created
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      Region ':pcm' created
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
      unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
      unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
      Optional I/O port ':ADC.7' not found
      Optional I/O port ':ADC.6' not found
      Optional I/O port ':ADC.5' not found
      Optional I/O port ':ADC.4' not found
      Optional memory region ':screen' not found
      Optional shared pointer ':rotateram' not found
      Optional memory region ':nvram' not found
      Starting Out Run (sitdown/upright, Rev B) ':'
        (missing dependencies; rescheduling)
      Starting Motorola MC68000 ':maincpu'
      Starting Motorola MC68000 ':subcpu'
      Starting Zilog Z80 ':soundcpu'
      Starting Watchdog Timer ':watchdog'
      Starting Intel 8255 PPI ':i8255'
      Starting ADC0804 A/D Converter ':adc'
      Starting Sega 315-5195 Memory Mapper ':mapper'
      Starting gfxdecode ':gfxdecode'
      Starting palette ':palette'
      Starting Video Screen ':screen'
      Starting Sega 16-bit Video ':segaic16vid'
      Starting Sega 16-bit Road Generator ':segaic16road'
      Starting Speaker ':lspeaker'
        (missing dependencies; rescheduling)
      Starting Speaker ':rspeaker'
        (missing dependencies; rescheduling)
      Starting Yamaha YM2151 OPM ':ymsnd'
      Starting Sega PCM ':pcm'
      Starting Timer ':bankmotor'
      Starting Sega Custom Sprites (Out Run) ':sprites'
      Starting NVRAM ':nvram'
      Starting Out Run (sitdown/upright, Rev B) ':'
        (missing dependencies; rescheduling)
      Starting Speaker ':lspeaker'
      Starting Speaker ':rspeaker'
      Starting Out Run (sitdown/upright, Rev B) ':'
      Attempting to parse: default.cfg
      Attempting to parse: outrun.cfg
      Starting Out Run (sitdown/upright, Rev B)
      hiscore: config found
      hiscore: found hiscore.dat entry for outrun
      Searching font Liberation Sans in -. path/s
      font Liberation Sans|Regular is not TrueType or BDF, using MAME default
      Searching font Liberation Sans in -. path/s
      font Liberation Sans|Regular is not TrueType or BDF, using MAME default
      hiscore: scores read FAIL
      Average speed: 99.91% (6 seconds)
      sdl_kill: closing audio
      Enter sdlwindow_exit
      Leave sdlwindow_exit
      
      G 1 Reply Last reply Reply Quote 0
      • G
        George @George
        last edited by

        Running Outrun in X11 from an xterm with 1680x1050 resolution:

        Reading translation file English: 1 strings, original table at word offset 7, translated table at word offset 9
        Loaded 0 translations from file English
        Starting plugin hiscore...
        Starting plugin data...
        Attempting load of mame.ini
        Parsing mame.ini
        Attempting load of mame.ini
        Parsing mame.ini
        Attempting load of horizont.ini
        Attempting load of arcade.ini
        Attempting load of raster.ini
        Attempting load of source/segaorun.ini
        Attempting load of outrun.ini
        Available videodrivers: x11 KMSDRM RPI dummy 
        Current Videodriver: x11
        	Display #0
        		Renderdrivers:
        			    opengl (0x0)
        			 opengles2 (0x0)
        			  opengles (0x0)
        			  software (0x0)
        Available audio drivers: 
        	alsa                
        	sndio               
        	dsp                 
        	disk                
        	dummy               
        Build version:      0.224 (mame0224)
        Build architecure:  
        Build defines 1:    SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1 
        Build defines 1:    LSB_FIRST=1 MAME_NOASM=1 
        SDL/OpenGL defines: SDL_COMPILEDVERSION=2009 USE_OPENGL=1 
        Compiler defines A: __GNUC__=8 __GNUC_MINOR__=3 __GNUC_PATCHLEVEL__=0 __VERSION__="8.3.0" 
        Compiler defines B: __unix__=1 
        Compiler defines C: __USE_FORTIFY_LEVEL=0 
        Enter init_monitors
        Adding monitor screen0 (1680 x 1050)
        Leave init_monitors
        Enter sdlwindow_init
        Using SDL native texturing driver (SDL 2.0+)
        Loaded opengl shared library: <default>
        
        Hints:
        	SDL_FRAMEBUFFER_ACCELERATION             (NULL)
        	SDL_RENDER_DRIVER                        (NULL)
        	SDL_RENDER_OPENGL_SHADERS                (NULL)
        	SDL_RENDER_SCALE_QUALITY                 (NULL)
        	SDL_RENDER_VSYNC                         (NULL)
        	SDL_VIDEO_X11_XVIDMODE                   (NULL)
        	SDL_VIDEO_X11_XINERAMA                   (NULL)
        	SDL_VIDEO_X11_XRANDR                     (NULL)
        	SDL_GRAB_KEYBOARD                        (NULL)
        	SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS         (NULL)
        	SDL_IOS_IDLE_TIMER_DISABLED              (NULL)
        	SDL_IOS_ORIENTATIONS                     (NULL)
        	SDL_XINPUT_ENABLED                       (NULL)
        	SDL_GAMECONTROLLERCONFIG                 (NULL)
        	SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS     (NULL)
        	SDL_ALLOW_TOPMOST                        (NULL)
        	SDL_TIMER_RESOLUTION                     (NULL)
        	SDL_RENDER_DIRECT3D_THREADSAFE           (NULL)
        	SDL_VIDEO_ALLOW_SCREENSAVER              (NULL)
        	SDL_ACCELEROMETER_AS_JOYSTICK            (NULL)
        	SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK   (NULL)
        	SDL_VIDEO_WIN_D3DCOMPILER                (NULL)
        	SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT      (NULL)
        	SDL_VIDEO_MAC_FULLSCREEN_SPACES          (NULL)
        	SDL_MOUSE_RELATIVE_MODE_WARP             (NULL)
        	SDL_RENDER_DIRECT3D11_DEBUG              (NULL)
        	SDL_VIDEO_HIGHDPI_DISABLED               (NULL)
        	SDL_WINRT_PRIVACY_POLICY_URL             (NULL)
        	SDL_WINRT_PRIVACY_POLICY_LABEL           (NULL)
        	SDL_WINRT_HANDLE_BACK_BUTTON             (NULL)
        Leave sdlwindow_init
        Enter sdl_info::create
        Leave renderer_sdl2::create
        window: using renderer opengl
        renderer: flag SDL_RENDERER_ACCELERATED
        renderer: flag SDL_RENDERER_TARGETTEXTURE
        Audio: Start initialization
        Audio: Driver is alsa
        Audio: frequency: 44100, channels: 2, samples: 512
        sdl_create_buffers: creating stream buffer of 22528 bytes
        Audio: End initialization
        Keyboard: Start initialization
        Input: Adding keyboard #0: System keyboard (device id: System keyboard)
        Keyboard: Registered System keyboard
        Keyboard: End initialization
        Mouse: Start initialization
        Input: Adding mouse #0: System mouse (device id: System mouse)
        Mouse: Registered System mouse
        Mouse: End initialization
        Lightgun: Begin initialization
        Lightgun: End initialization
        Joystick: Start initialization
        Joystick: End initialization
        Searching font Liberation Sans in -. path/s
        font Liberation Sans|Regular is not TrueType or BDF, using MAME default
        Region ':maincpu' created
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip ECD
        unzip: /home/pi/RetroPie/roms/mame/outrun.zip has no ZIP64 ECD locator
        unzip: read /home/pi/RetroPie/roms/mame/outrun.zip central directory
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        Region ':subcpu' created
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        Region ':gfx1' created
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        Region ':sprites' created
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        Region ':segaic16road' created
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        Region ':soundcpu' created
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        Region ':pcm' created
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
        unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
        unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
        Optional I/O port ':ADC.7' not found
        Optional I/O port ':ADC.6' not found
        Optional I/O port ':ADC.5' not found
        Optional I/O port ':ADC.4' not found
        Optional memory region ':screen' not found
        Optional shared pointer ':rotateram' not found
        Optional memory region ':nvram' not found
        Starting Out Run (sitdown/upright, Rev B) ':'
          (missing dependencies; rescheduling)
        Starting Motorola MC68000 ':maincpu'
        Starting Motorola MC68000 ':subcpu'
        Starting Zilog Z80 ':soundcpu'
        Starting Watchdog Timer ':watchdog'
        Starting Intel 8255 PPI ':i8255'
        Starting ADC0804 A/D Converter ':adc'
        Starting Sega 315-5195 Memory Mapper ':mapper'
        Starting gfxdecode ':gfxdecode'
        Starting palette ':palette'
        Starting Video Screen ':screen'
        Starting Sega 16-bit Video ':segaic16vid'
        Starting Sega 16-bit Road Generator ':segaic16road'
        Starting Speaker ':lspeaker'
          (missing dependencies; rescheduling)
        Starting Speaker ':rspeaker'
          (missing dependencies; rescheduling)
        Starting Yamaha YM2151 OPM ':ymsnd'
        Starting Sega PCM ':pcm'
        Starting Timer ':bankmotor'
        Starting Sega Custom Sprites (Out Run) ':sprites'
        Starting NVRAM ':nvram'
        Starting Out Run (sitdown/upright, Rev B) ':'
          (missing dependencies; rescheduling)
        Starting Speaker ':lspeaker'
        Starting Speaker ':rspeaker'
        Starting Out Run (sitdown/upright, Rev B) ':'
        Attempting to parse: default.cfg
        Attempting to parse: outrun.cfg
        Starting Out Run (sitdown/upright, Rev B)
        hiscore: config found
        hiscore: found hiscore.dat entry for outrun
        Searching font Liberation Sans in -. path/s
        font Liberation Sans|Regular is not TrueType or BDF, using MAME default
        Searching font Liberation Sans in -. path/s
        font Liberation Sans|Regular is not TrueType or BDF, using MAME default
        hiscore: scores read FAIL
        Average speed: 100.00% (11 seconds)
        sdl_kill: closing audio
        Enter sdlwindow_exit
        Leave sdlwindow_exit
        

        The environment variable setting (SDL_VIDEO_KMSDRM_CRTCID=87 SDL_VIDEO_KMSDRM_MODEID=24) in the second case is interesting. Maybe it is not MAME, but perhaps there is something going on with SDL when using KMSDRM vs. X11.

        Will run ddp3 in verbose mode and post up results later.

        - George

        G 1 Reply Last reply Reply Quote 0
        • G
          George @George
          last edited by George

          I did a bit more testing, this time by SSHing into the machine and using tvservice -s. I found out some more interesting tidbits.

          When running Outrun from EmulationStation with my monitor's native resolution (1680x1050). Performance is poor and tvservice -s shows:

          state 0xa [HDMI CUSTOM RGB full unknown AR], 1680x1050 @ 60.00Hz, progressive
          

          When I run it from EmulationStation with 640x480 resolution selected. Performance is great and tvservice -s shows:

          state 0xa [HDMI CUSTOM RGB full 4:3], 640x480 @ 60.00Hz, progressive
          

          Everything seems straightforward, until I then get into the Pixel Desktop, which is running at 1680x1050, and without changing the resolution, I run Outrun in MAME. Performance is great and tvservice -s unexpectedly shows:

          state 0xa [HDMI CUSTOM RGB full unknown AR], 1680x1050 @ 60.00Hz, progressive
          

          This seems to support my idea that when X11 is used, the pixel data is being rendered at the original machine's native resolution and then being scaled up by the GPU. Contrarily, when KMSDRM is being used, I believe something else is going on.

          I'll have to take a look at the MAME and SDL source code to see if. anything pops up. Any other ideas are welcome!

          - George

          dankcushionsD 2 Replies Last reply Reply Quote 1
          • dankcushionsD
            dankcushions Global Moderator @George
            last edited by

            This post is deleted!
            1 Reply Last reply Reply Quote 0
            • dankcushionsD
              dankcushions Global Moderator @George
              last edited by

              @george thanks for this. i guess the difference is

              Current Videodriver: x11
              

              (fast)

              vs

              Current Videodriver: KMSDRM
              

              (slow)

              out of interest, in /boot/config.txt are you running

              dtoverlay=vc4-fkms-v3d
              

              (default, "fake" kms) or

              dtoverlay=vc4-kms-v3d
              

              (pure kms)

              i wonder if the latter makes a difference?

              G 1 Reply Last reply Reply Quote 0
              • G
                George @dankcushions
                last edited by

                @dankcushions yeah, the video driver does seem to be the difference, but I'm unable to determine how.

                My config.txt shows the following:

                [pi4]
                # Enable DRM VC4 V3D driver on top of the dispmanx display stack
                dtoverlay=vc4-fkms-v3d
                max_framebuffers=2
                

                I can check if pure KMS makes any difference.

                • George
                G 1 Reply Last reply Reply Quote 0
                • G
                  George @George
                  last edited by

                  Well that didn't take long. I switched to kms and MAME won't even run correctly from within EmulationStation. The screen blanks out and I can't get out of MAME. SSHing in and looking at the runcommand.log makes it appear that the game is loaded. From within X11, I can run the game, but when I exit out, the screen blanks out and doesn't come back. Interestingly, there is also no sound when running MAME on X11. Switching back to fkms and everything is back to normal.

                  While looking at the source for SDL and MAME, I noticed that the MAME repository also includes source for SDL. I also noticed that RetroPie has its own repository for SDL. Though I can't find in either any references to SDL_VIDEO_KMSDRM_CRTCID or SDL_VIDEO_KMSDRM_MODEID. Could there be a conflict? Am I not looking in the correct place?

                  Thanks!

                  - George

                  BuZzB mituM 2 Replies Last reply Reply Quote 0
                  • BuZzB
                    BuZz administrators @George
                    last edited by

                    @george our SDL code is on a retropie-2.0.10 branch.

                    To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                    1 Reply Last reply Reply Quote 0
                    • mituM
                      mitu Global Moderator @George
                      last edited by mitu

                      @george said in Enhanced performance of MAMEdev MAME in X11?!?!:

                      Well that didn't take long. I switched to kms and MAME won't even run correctly from within EmulationStation. The screen blanks out and I can't get out of MAME. SSHing in and looking at the runcommand.log makes it appear that the game is loaded. From within X11, I can run the game, but when I exit out, the screen blanks out and doesn't come back. Interestingly, there is also no sound when running MAME on X11. Switching back to fkms and everything is back to normal.

                      The KMS driver for the current stable kernel (5.4) in Raspbian has issues. If you wish to switch to the (pure) KMS driver, you should also switch to the next LTS Rapbian kernel (5.9, soon to be 5.10), where the KMS driver should be working much better. See https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=288234.

                      While looking at the source for SDL and MAME, I noticed that the MAME repository also includes source for SDL. I also noticed that RetroPie has its own repository for SDL. Though I can't find in either any references to SDL_VIDEO_KMSDRM_CRTCID or SDL_VIDEO_KMSDRM_MODEID. Could there be a conflict? Am I not looking in the correct place?

                      Those env vars are set by runcommand, to set the video resolution. It's a RetroPie local patch to be able to switch video modes with SDL2 based applications, since there was (at the time) no method to do so - the KMSDRM driver would report only the (fullscreen) current resolution to the application and mode switching would no be possible otherwise. Instead, based on those vars, SDL2 switches resolution on video initialization and reports the (new) resolution to the applications.

                      This kind of ties up with what you noticed.One of the important differences between the x11 and kms SDL2 video drivers is that x11 is able to switch to any resolution supported by the display - on the fly - while kms does not. Having said that, the KMS SDL2 driver has been radically changed in newer SDL2 version (since 2.0.10, the version that RetroPie includes and patched), but unfortunately those changes are not without issues so they haven't been included in RetroPie.

                      RionR 1 Reply Last reply Reply Quote 0
                      • RionR
                        Rion @mitu
                        last edited by

                        @mitu Sorry to hijack this thread but is this not one of the main reasons that people can't use on the fly resolution switching with vga666 and a crt?

                        FBNeo rom filtering
                        Mame2003 Arcade Bezels
                        Fba Arcade Bezels
                        Fba NeoGeo Bezels

                        mituM 1 Reply Last reply Reply Quote 0
                        • mituM
                          mitu Global Moderator @Rion
                          last edited by

                          @rion said in Enhanced performance of MAMEdev MAME in X11?!?!:

                          @mitu Sorry to hijack this thread but

                          No, it's not related.

                          1 Reply Last reply Reply Quote 1
                          • G
                            George
                            last edited by

                            Thanks @buzz and @mitu!

                            This info gives me some good pointers to test. I can try the base versions of SDL (2.0.10 and the latest) vs. what comes with RetroPie (i.e. retropie-2.0.10) to see if there are any performance differences at all. I also noticed that there is some debug messages in the code, so perhaps I can enable debug logging to possibly get additional information.

                            Post that, I'll see if there's anything to be gleaned in how MAME handles (or doesn't handle) resolution changes.

                            Side note: I see some changes in the retropie-2.0.10 branch with SDL_sysjoystick.c that seem to be related in some way to a bug I reported to SDL. I'll have to check that out as well.

                            Thanks again!

                            - George

                            G 1 Reply Last reply Reply Quote 0
                            • G
                              George @George
                              last edited by

                              Looks like I've hit a couple of snags while trying to compile. I modified the RetroPi sdl2.sh scriptmodule to pull from a different source/branch. I tried release-2.0.10 and release-2.0.12. I get the error message:

                              /home/pi/RetroPie-Setup/tmp/build/sdl210/2.0.12+5rpi/src/video/SDL_egl.c:289:53: error: 'F_OK' undeclared (first use in this function)
                                   SDL_bool vc4 = (0 == access("/sys/module/vc4/", F_OK));
                              

                              And if I fix that by adding #include <unistd.h> I get the following error message:

                              /usr/include/GLES/gl.h:63:25: error: conflicting types for 'GLsizeiptr'
                               typedef khronos_ssize_t GLsizeiptr;
                              

                              But when I compile the retropie-2.0.10branch it compiles fine. Perhaps there are some hints in that branch that I can port over. Continuing to work on it, but any pointers would be helpful.

                              Thanks!

                              - George

                              G 1 Reply Last reply Reply Quote 1
                              • G
                                George @George
                                last edited by

                                Quick note as I continue to work on this. I've found on the RPi4 that even if Pixel Desktop and XOrg is installed, the following check:

                                if isPlatform "x11"; then
                                

                                Will return false. This seems to matter when SDL is being compiled because libpulse-dev is a dependency that is not automatically installed with the latest version of RetroPie. So if you try to compile SDL yourself using the supplementary script module sdl2.sh. The script will check x11 and then install libpulse-dev libwayland-dev during the depends phase.

                                Interestingly, libpulse-dev isn't needed for SDL on RPi 4 when installed via binary.

                                If this is of interest to anyone, I can file a ticket.

                                - George

                                dankcushionsD 1 Reply Last reply Reply Quote 0
                                • dankcushionsD
                                  dankcushions Global Moderator @George
                                  last edited by

                                  @george x11 platform flag is set by the script for specific platforms. eg: https://github.com/RetroPie/RetroPie-Setup/blob/master/scriptmodules/system.sh#L518

                                  it's not set for rpi in any scenario because running retropie on pi + desktop isn't a tested/supported configuration, but could manually add it into system.sh i guess.

                                  B 1 Reply Last reply Reply Quote 0
                                  • B
                                    bluestang @dankcushions
                                    last edited by

                                    @George what arguments are you passing or what changes did you make in SDL.sh?

                                    I’ve built SDL2 v2.0.12 from the script using the mirrored SDL2 GitHub with my own arguments as well. I did have to modify the Debian control file as well to build the packages but that is easy to do.

                                    1 Reply Last reply Reply Quote 0
                                    • G
                                      George
                                      last edited by

                                      Ok, so some good news! The TLDR is it looks like SDL2 v2.0.12 shows a lot of promise in improving performance for KMS.

                                      I was finally able to spend some time and get SDL2 to compile. Some tweaks to the source code were necessary, taking a cue from the RetroPie fork (diff like mode below):

                                      src/video/SDL_egl.c line 48

                                      + #include <unistd.h>
                                      + #define DEFAULT_OGL ( vc4 ? "libGL.so.1" : "" )
                                      

                                      src/video/SDL_video.c line 40

                                      - #if SDL_VIDEO_OPENGL_ES
                                      + #if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL
                                      

                                      That seemed to be enough to get it to compile. Installation required removing the existing SDL2 (apt remove...) and then reinstalling SDL2 TTF.

                                      Subjective results for playing ddp3 (sorry, didn't capture frame rates or percentages):

                                      • SDL2 RetroPie version 2.0.10 (Tag: retropie-2.0.10)
                                        • Great performance under X11 at 1680x1050 resolution
                                        • Very poor performance running from Emulation station @ 1680x1050.
                                        • Better but still poor performance running from EmulationStation @ 640x480
                                        • Same poor performance changing resolution to 640x480 in config.txt and running from EmulationStation
                                      • SDL2 2.0.10 (Tag: release-2.0.10)
                                        • Great performance under X11 at 1680x1050 resolution
                                        • Very poor performance running from Emulation station @ 1680x1050
                                        • Very poor performance running from EmulationStation @ 640x480 (as it does not
                                          recognize the environment variables to change screen resolution)
                                        • Better but still poor performance changing resolution to 640x480 in config.txt and running from EmulationStation
                                      • SDL2 2.0.12 (Tag: release-2.0.12)
                                        • Great performance under X11 at 1680x1050 resolution
                                        • Great performance running from Emulation station @ 1680x1050
                                        • Didn't bother testing from EmulationStation with 640x480 because I don't think it will recognize the environment variables and it was working great under 1680x1060
                                        • Didn't bother testing with changes to config.txt

                                      So it looks like SDL2 v2.0.12 shows a lot of promise in improving performance for KMS. I understand there may be other issues with it, but hopefully those will be resolved in the near future.

                                      I will note that when hitting TAB to get into the MAME menu while playing a game results in poor performance, in BOTH the game and the menu. The menu and other overlays seem to be at full resolution. There may be ways to optimize that, but I haven't looked too deeply into it.

                                      Furthermore, it looks like there is some support for Vulkan in more recent versions of SDL2, so as Vulkan support for RPI matures, BGFX on MAME can be enabled. I did do some testing with MAME in X11 using BGFX and Vulkan, but didn't see a massive increase in performance over the existing KMS performance. This was early on in my exploration and was actually how I discovered the X11 performance boost.

                                      I could look into modding the script so that it adds an X11 option to launch MAME for light gun support, but I don't actually have a light gun to test with. Perhaps that would be best explored as a separate topic if there is a lot of interest in it.

                                      Thanks for all the guidance and let me know if there's any other ways I can help.

                                      - George

                                      mituM 1 Reply Last reply Reply Quote 2
                                      • mituM
                                        mitu Global Moderator @George
                                        last edited by mitu

                                        Thanks for the testing, looks interesting.

                                        Vulkan support might be useful for enabling BGFX and using the HLSL shaders on standalone MAME, which are better supported than the GLSL shaders available right now.

                                        EDIT: one question - did you do the tests using the new Kernel and the (pure) KMS driver or did you use the defaults in Raspbian/RetroPie ?

                                        G 1 Reply Last reply Reply Quote 0
                                        • G
                                          George @mitu
                                          last edited by

                                          Thanks @mitu!

                                          I did these tests with just the default RetroPie 4.7.1, though I did sudo apt update; sudo apt upgrade to get all the latest packages.

                                          Let me know if this information helps:

                                          pi@retropie:~$ uname -a
                                          Linux retropie 5.4.72-v7l+ #1356 SMP Thu Oct 22 13:57:51 BST 2020 armv7l GNU/Linux
                                          pi@retropie:~$ lsb_release --all
                                          No LSB modules are available.
                                          Distributor ID:	Raspbian
                                          Description:	Raspbian GNU/Linux 10 (buster)
                                          Release:	10
                                          Codename:	buster
                                          

                                          - George

                                          1 Reply Last reply Reply Quote 0
                                          • dankcushionsD dankcushions referenced this topic on
                                          • DTEAMD DTEAM referenced this topic on
                                          • First post
                                            Last post

                                          Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                          Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.