Nabla icon indicating copy to clipboard operation
Nabla copied to clipboard

Logical device features

Open Erfan-Ahmadi opened this issue 1 year ago • 1 comments

Examples PR: https://github.com/Devsh-Graphics-Programming/Nabla-Examples-and-Tests/pull/15

  • Improving Feature/Extension Selection and Report API
  • Maintenance and general plumbing

Features and Extension API

Priorities

  • [x] Enable features on Logical Device by "editing" a physical device feature struct and passing that to creation
  • [x] Change Format report structures (https://github.com/Devsh-Graphics-Programming/Nabla/pull/357#issuecomment-1158094820)
  • [x] Implicit dependency "patcher" which enabled features required by other required features
  • [x] PhysicalDevice chooser class/struct/func
  • [ ] drawParameters extention and fix for Vulkan and GLES (https://discord.com/channels/593902898015109131/932586232591024128/934485710193459251)
  • [x] https://discord.com/channels/593902898015109131/936526907648925706/972634976422076476 https://github.com/Devsh-Graphics-Programming/Nabla/pull/357#issuecomment-1158094820 https://github.com/Devsh-Graphics-Programming/Nabla/pull/357#issuecomment-1153776059
  • [ ] GLSL compiler + debug callback should probably move out of IPhysicalDevice to ILogicalDevice
  • [ ] this method should be removed https://github.com/Devsh-Graphics-Programming/Nabla/blob/logical_device_features/include/nbl/video/IPhysicalDevice.h#L532
  • [ ] Move getExtraGLSLDefines to logical device (+ other queries for feature availability)
  • [x] Move this to CVulkan files https://github.com/Devsh-Graphics-Programming/Nabla/blob/logical_device_features/include/nbl/video/SPhysicalDeviceFeatures.h#L1269

Fixes/Improvements

  • [ ] NBL_ENUM_ADD_BITOPS (make sure the ops return core::bitflag)
  • [ ] Screenshot Changes
    • [ ] wait semaphore (https://github.com/Devsh-Graphics-Programming/Nabla/pull/219#discussion_r800543586)
    • [ ] add convert filter
    • [ ] add flip image option
    • [ ] dst access mask (https://github.com/Devsh-Graphics-Programming/Nabla/pull/219#discussion_r800546866)
  • [ ] freeCommandBuffers_impl (see this)
  • [ ] CGLTF DerivativeMap normalization factor and builtin shader changes (consider normalization + push_constants in a nice struct)
  • [ ] Const-Correctness of IGPURenderpassIndependentPipeline constructor parameters
  • [x] Add EAF_NONE (access flags)

Examples

  • [ ] Finalize Porting Example 0.ImportanceSampling

Acceleration Structures

  • [ ] Compaction Example and in AssetConverter
  • [ ] Use bitflags for accelerationStructure flags now

Erfan-Ahmadi avatar Aug 19 '22 08:08 Erfan-Ahmadi

Nice, readable.

My work here is done.

Just rework the IMPLICIT ENABLE: and make that happen before you start messing with Vulkan structs but not in the general headers (since each backend will have different dependency chains).