Browse Source

Vk: okay, I need these weird extension definitions now.

pull/491/head
Vladimír Vondruš 5 years ago
parent
commit
4f789ce92b
  1. 4
      src/Magnum/Vk/Extensions.cpp
  2. 15
      src/Magnum/Vk/Extensions.h

4
src/Magnum/Vk/Extensions.cpp

@ -73,7 +73,7 @@ constexpr Extension DeviceExtensions[] {
Extensions::IMG::format_pvrtc{},
};
constexpr Extension DeviceExtensions11[] {
//Extensions::KHR::16bit_storage{},
Extensions::KHR::_16bit_storage{},
Extensions::KHR::bind_memory2{},
Extensions::KHR::dedicated_allocation{},
Extensions::KHR::descriptor_update_template{},
@ -99,7 +99,7 @@ constexpr Extension DeviceExtensions12[] {
Extensions::EXT::scalar_block_layout{},
Extensions::EXT::separate_stencil_usage{},
Extensions::EXT::shader_viewport_index_layer{},
//Extensions::KHR::8bit_storage{},
Extensions::KHR::_8bit_storage{},
Extensions::KHR::buffer_device_address{},
Extensions::KHR::create_renderpass2{},
Extensions::KHR::depth_stencil_resolve{},

15
src/Magnum/Vk/Extensions.h

@ -44,7 +44,10 @@ namespace Magnum { namespace Vk {
Each extension is a @cpp struct @ce named hierarchically by prefix, vendor and
extension name taken from list at @ref vulkan-support, for example
@cpp Vk::Extensions::EXT::debug_report @ce.
@cpp Vk::Extensions::EXT::debug_report @ce. The only exceptions are
@vk_extension{KHR,8bit_storage} and @vk_extension{KHR,16bit_storage}, which are
prefixed with an underscore (so e.g. `_8bit_storage` instead of
`8bit_storage`).
Each struct has the same public methods as the @ref InstanceExtension /
@ref Extension class (@ref Extension::requiredVersion() "requiredVersion()",
@ -95,16 +98,18 @@ namespace EXT {
}
#undef _extension
#define _extension(index, vendor, extension, _requiredVersion, _coreVersion) \
#define _extension_(index, vendor, name, extension, _requiredVersion, _coreVersion) \
struct extension { \
enum: std::size_t { Index = index }; \
constexpr static Version requiredVersion() { return Version::_requiredVersion; } \
constexpr static Version coreVersion() { return Version::_coreVersion; } \
constexpr static Containers::StringView string() { \
using namespace Containers::Literals; \
return "VK_" #vendor "_" #extension ""_s; \
return "VK_" #vendor "_" #name ""_s; \
} \
};
#define _extension(index, vendor, extension, _requiredVersion, _coreVersion) \
_extension_(index, vendor, extension, extension, _requiredVersion, _coreVersion)
namespace EXT {
/** @todo remove EXT_debug_marker when all platforms have EXT_debug_utils
(my Huawei P10 doesn't have it) */
@ -127,7 +132,7 @@ namespace EXT {
_extension(34, KHR,maintenance1, Vk10, Vk11) // #70
_extension(35, KHR,external_semaphore, Vk10, Vk11) // #78
_extension(36, KHR,shader_float16_int8, Vk10, Vk12) // #83
//_extension(37, KHR,16bit_storage, VK10, Vk11) // #84
_extension_(37, KHR,16bit_storage,_16bit_storage, Vk10, Vk11) // #84
_extension(38, KHR,descriptor_update_template, Vk10, Vk11) // #86
_extension(39, KHR,external_memory, Vk10, Vk11) // #73
_extension(40, KHR,imageless_framebuffer, Vk10, Vk12) // #109
@ -145,7 +150,7 @@ namespace EXT {
_extension(52, KHR,maintenance3, Vk10, Vk11) // #169
_extension(53, KHR,draw_indirect_count, Vk10, Vk12) // #170
_extension(54, KHR,shader_subgroup_extended_types, Vk11, Vk12) // #176
//_extension(55, KHR,8bit_storage, Vk10, Vk12) // #178
_extension_(55, KHR,8bit_storage,_8bit_storage, Vk10, Vk12) // #178
_extension(56, KHR,shader_atomic_int64, Vk10, Vk12) // #181
_extension(57, KHR,driver_properties, Vk10, Vk12) // #197
_extension(58, KHR,shader_float_controls, Vk10, Vk12) // #198

Loading…
Cancel
Save