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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions