Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,062
    • Issues 3,062
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 993
    • Merge requests 993
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MesaMesa
  • mesamesa
  • Issues
  • #3915
Closed
Open
Issue created Dec 03, 2020 by Luigi Cruz@luigifcruz

v3dv: Feature request for improved DOOM compatibility

The goal of this issue is to identify and request features used by Vulkan based DOOM renders built by the community. This is what I found out by testing GZDOOM and RBDOOM-3-BFG on my Raspberry Pi 4 with the upstream drivers:

Missing VkPhysicalDeviceFeatures:

  • textureCompressionBC (RBDOOM-3-BFG)
  • depthBiasClamp (RBDOOM-3-BFG)
  • depthBounds (RBDOOM-3-BFG)
  • depthClamp (GZDOOM & RBDOOM-3-BFG)

Missing VkFormat:

  • VK_FORMAT_D24_UNORM_S8_UINT (RBDOOM-3-BFG)
  • VK_FORMAT_BC1_RGB_UNORM_BLOCK (RBDOOM-3-BFG)
  • VK_FORMAT_BC3_UNORM_BLOCK (RBDOOM-3-BFG)
  • VK_FORMAT_A2R10G10B10_UNORM_PACK32 (GZDOOM)

After identifying the missing features, I went ahead and implemented them. I was able to run GZDOOM on my device successfully. I also tested the compressed textures feature with an old version of Sascha Willems' Vulkan demos and it worked as expected (image below). I wasn't able to fully test RBDOOM-3-BFG because of memory issues with my 2GB model. But the game stopped crashing on the startup with the VkPhysicalDeviceFeatures::textureCompressionBC implemented.

v3dv-bc-compression_hu1b4e5d88aad85524dfd3166da09a1252_196465_79d2e3b0cbbad4568557da36c41f5153__1_

I committed my patches to the V3DV to a fork. I also wrote a blog post with more details about my tests and a video of GZDOOM running "The Ultimate DOOM" on the Raspberry Pi 4.

Thanks for your awesome work!

Edited Dec 03, 2020 by Luigi Cruz
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking