Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
mesa
mesa
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2,317
    • Issues 2,317
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 632
    • Merge Requests 632
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Mesa
  • mesamesa
  • Issues
  • #3915

Closed
Open
Opened 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 admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: mesa/mesa#3915