Skip to content
This repository was archived by the owner on Apr 29, 2024. It is now read-only.
This repository was archived by the owner on Apr 29, 2024. It is now read-only.

Tracking issue: Linux port using dxvk / gallium nine #348

@q4a

Description

@q4a

Here will be current lists of needed fixes for Linux port of engine using dxvk.

Current source code of dxvk port is here: https://github.com/storm-devs/storm-engine/tree/dxvk

Started status: there is 113 #ifdef marked with FIX_LINUX which should be replaces with proper implementations, but engine already build fine with CLANG 11 and partially show main menu background
storm-linux-main-screen

Current status:
cur-status

113 marked FIX_LINUX tasks (from most important to less):

  • 19 for FIX_LINUX ID3DXEffect. Pushed workaround: CTechnique: + precompiled shaders. Check FIX_LINUX Effects
  • 01 for FIX_LINUX D3DXCreateTextureFromFileA: is it used at least somehow?
  • 01 for FIX_LINUX D3DXCreateTextureFromFileInMemoryEx: unused, created PR: Remove unused code #347
  • 04 for FIX_LINUX HBITMAP: unused, created PR: Remove unused code #347
  • 04 for FIX_LINUX Screenshot: I hope that SDL has some useful funcs for taking screenshots
  • 02 for FIX_LINUX ReleaseDC: not sure, but may be important
  • 04 for FIX_LINUX VirtualKey: There is dilemma: we can keep VirtualKeys for c-files in PROGRAM folder to maintain old mods or replace all VirtualKeys, because less code == less errors. Current decision - keep VirtualKeys: Replace GetKeyState and GetAsyncKeyState with core functions #328
  • 04 for FIX_LINUX HINSTANCE: for correct handling window and other: Linux related changes part 1 #366
  • 04 for FIX_LINUX Cursor: port all Cursor stuff to SDL
  • 10 for FIX_LINUX GetTickCount: I hope that we will find old branch/changes where is this changes already made
  • 03 for FIX_LINUX sentry_options: few Windows only direct calls to crashpad_handler.exe
  • 01 for FIX_LINUX WideCharToMultiByte: some old conversation
  • 01 for FIX_LINUX MultiByteToWideChar: some old conversation
  • 08 for FIX_LINUX DirectXMath: one DirectXMath call in AVX/SSE2 ifdef. I created quick workaround (this increased 08 for FIX_LINUX DirectXMath from 2 to 8), but I'll need to replace it with this lib: https://github.com/nfrechette/rtm
  • 04 for FIX_LINUX DxErr.h: few error handling, may be already in DXVK?
  • 02 for FIX_LINUX _flushall: not sure
  • 01 for FIX_LINUX RDTSC_*: need to test SDL_GetPerformanceCounter and use it (if it passes tests)
  • 10 for FIX_LINUX __debugbreak: need to create one place with debugbreak for all platforms/archs
  • 02 for FIX_LINUX GetWindowRect: I used SDL functions for Linux part, but it did not work well in Windows (why?)
  • 08 for FIX_LINUX ddraw.h and amstream.h: It need only for play avi into and other videos. Will require to use ffmpeg or something like that
  • 01 for FIX_LINUX ExitProcess: I used "exit(0)" for Linux port, but it is part of SailorsEditor, which should be moved from engine IMHO.
  • 02 for FIX_LINUX SHGetKnownFolderPath: I used SDL_GetPrefPath for Linux port. Should I keep SHGetKnownFolderPath for compatibility?
  • 02 for FIX_LINUX 7za.exe: one direct call to 7za.exe
  • 01 for FIX_LINUX CreateEventA: not sure if I need to prevent multiple instances of game
  • 03 for FIX_LINUX Beep: I'm fine if my pc speaker will not beep when I'm playng game)
  • 17 for FIX_LINUX s_debug.h: part for debugging user mods in compiler.cpp and s_dbg_*

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions