Update the Vulkan loader to SDK 1.0.54.0
This commit is contained in:
parent
b14dc3351c
commit
8d016a3c14
|
@ -16,6 +16,7 @@
|
|||
* limitations under the License.
|
||||
*
|
||||
* Author: Jon Ashburn <jon@lunarg.com>
|
||||
* Author: Lenny Komow <lenny@lunarg.com>
|
||||
*/
|
||||
|
||||
#include "vk_loader_platform.h"
|
||||
|
@ -27,264 +28,256 @@
|
|||
// Clang-format does not understand macros.
|
||||
// clang-format off
|
||||
|
||||
// Trampoline function macro for unknown physical device extension command.
|
||||
#define DevExtTramp(num) \
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext##num(VkDevice device) { \
|
||||
const struct loader_dev_dispatch_table *disp; \
|
||||
disp = loader_get_dev_dispatch(device); \
|
||||
disp->ext_dispatch.dev_ext[num](device); \
|
||||
}
|
||||
|
||||
DevExtTramp(0)
|
||||
DevExtTramp(1)
|
||||
DevExtTramp(2)
|
||||
DevExtTramp(3)
|
||||
DevExtTramp(4)
|
||||
DevExtTramp(5)
|
||||
DevExtTramp(6)
|
||||
DevExtTramp(7)
|
||||
DevExtTramp(8)
|
||||
DevExtTramp(9)
|
||||
DevExtTramp(10)
|
||||
DevExtTramp(11)
|
||||
DevExtTramp(12)
|
||||
DevExtTramp(13)
|
||||
DevExtTramp(14)
|
||||
DevExtTramp(15)
|
||||
DevExtTramp(16)
|
||||
DevExtTramp(17)
|
||||
DevExtTramp(18)
|
||||
DevExtTramp(19)
|
||||
DevExtTramp(20)
|
||||
DevExtTramp(21)
|
||||
DevExtTramp(22)
|
||||
DevExtTramp(23)
|
||||
DevExtTramp(24)
|
||||
DevExtTramp(25)
|
||||
DevExtTramp(26)
|
||||
DevExtTramp(27)
|
||||
DevExtTramp(28)
|
||||
DevExtTramp(29)
|
||||
DevExtTramp(30)
|
||||
DevExtTramp(31)
|
||||
DevExtTramp(32)
|
||||
DevExtTramp(33)
|
||||
DevExtTramp(34)
|
||||
DevExtTramp(35)
|
||||
DevExtTramp(36)
|
||||
DevExtTramp(37)
|
||||
DevExtTramp(38)
|
||||
DevExtTramp(39)
|
||||
DevExtTramp(40)
|
||||
DevExtTramp(41)
|
||||
DevExtTramp(42)
|
||||
DevExtTramp(43)
|
||||
DevExtTramp(44)
|
||||
DevExtTramp(45)
|
||||
DevExtTramp(46)
|
||||
DevExtTramp(47)
|
||||
DevExtTramp(48)
|
||||
DevExtTramp(49)
|
||||
DevExtTramp(50)
|
||||
DevExtTramp(51)
|
||||
DevExtTramp(52)
|
||||
DevExtTramp(53)
|
||||
DevExtTramp(54)
|
||||
DevExtTramp(55)
|
||||
DevExtTramp(56)
|
||||
DevExtTramp(57)
|
||||
DevExtTramp(58)
|
||||
DevExtTramp(59)
|
||||
DevExtTramp(60)
|
||||
DevExtTramp(61)
|
||||
DevExtTramp(62)
|
||||
DevExtTramp(63)
|
||||
DevExtTramp(64)
|
||||
DevExtTramp(65)
|
||||
DevExtTramp(66)
|
||||
DevExtTramp(67)
|
||||
DevExtTramp(68)
|
||||
DevExtTramp(69)
|
||||
DevExtTramp(70)
|
||||
DevExtTramp(71)
|
||||
DevExtTramp(72)
|
||||
DevExtTramp(73)
|
||||
DevExtTramp(74)
|
||||
DevExtTramp(75)
|
||||
DevExtTramp(76)
|
||||
DevExtTramp(77)
|
||||
DevExtTramp(78)
|
||||
DevExtTramp(79)
|
||||
DevExtTramp(80)
|
||||
DevExtTramp(81)
|
||||
DevExtTramp(82)
|
||||
DevExtTramp(83)
|
||||
DevExtTramp(84)
|
||||
DevExtTramp(85)
|
||||
DevExtTramp(86)
|
||||
DevExtTramp(87)
|
||||
DevExtTramp(88)
|
||||
DevExtTramp(89)
|
||||
DevExtTramp(90)
|
||||
DevExtTramp(91)
|
||||
DevExtTramp(92)
|
||||
DevExtTramp(93)
|
||||
DevExtTramp(94)
|
||||
DevExtTramp(95)
|
||||
DevExtTramp(96)
|
||||
DevExtTramp(97)
|
||||
DevExtTramp(98)
|
||||
DevExtTramp(99)
|
||||
DevExtTramp(100)
|
||||
DevExtTramp(101)
|
||||
DevExtTramp(102)
|
||||
DevExtTramp(103)
|
||||
DevExtTramp(104)
|
||||
DevExtTramp(105)
|
||||
DevExtTramp(106)
|
||||
DevExtTramp(107)
|
||||
DevExtTramp(108)
|
||||
DevExtTramp(109)
|
||||
DevExtTramp(110)
|
||||
DevExtTramp(111)
|
||||
DevExtTramp(112)
|
||||
DevExtTramp(113)
|
||||
DevExtTramp(114)
|
||||
DevExtTramp(115)
|
||||
DevExtTramp(116)
|
||||
DevExtTramp(117)
|
||||
DevExtTramp(118)
|
||||
DevExtTramp(119)
|
||||
DevExtTramp(120)
|
||||
DevExtTramp(121)
|
||||
DevExtTramp(122)
|
||||
DevExtTramp(123)
|
||||
DevExtTramp(124)
|
||||
DevExtTramp(125)
|
||||
DevExtTramp(126)
|
||||
DevExtTramp(127)
|
||||
DevExtTramp(128)
|
||||
DevExtTramp(129)
|
||||
DevExtTramp(130)
|
||||
DevExtTramp(131)
|
||||
DevExtTramp(132)
|
||||
DevExtTramp(133)
|
||||
DevExtTramp(134)
|
||||
DevExtTramp(135)
|
||||
DevExtTramp(136)
|
||||
DevExtTramp(137)
|
||||
DevExtTramp(138)
|
||||
DevExtTramp(139)
|
||||
DevExtTramp(140)
|
||||
DevExtTramp(141)
|
||||
DevExtTramp(142)
|
||||
DevExtTramp(143)
|
||||
DevExtTramp(144)
|
||||
DevExtTramp(145)
|
||||
DevExtTramp(146)
|
||||
DevExtTramp(147)
|
||||
DevExtTramp(148)
|
||||
DevExtTramp(149)
|
||||
DevExtTramp(150)
|
||||
DevExtTramp(151)
|
||||
DevExtTramp(152)
|
||||
DevExtTramp(153)
|
||||
DevExtTramp(154)
|
||||
DevExtTramp(155)
|
||||
DevExtTramp(156)
|
||||
DevExtTramp(157)
|
||||
DevExtTramp(158)
|
||||
DevExtTramp(159)
|
||||
DevExtTramp(160)
|
||||
DevExtTramp(161)
|
||||
DevExtTramp(162)
|
||||
DevExtTramp(163)
|
||||
DevExtTramp(164)
|
||||
DevExtTramp(165)
|
||||
DevExtTramp(166)
|
||||
DevExtTramp(167)
|
||||
DevExtTramp(168)
|
||||
DevExtTramp(169)
|
||||
DevExtTramp(170)
|
||||
DevExtTramp(171)
|
||||
DevExtTramp(172)
|
||||
DevExtTramp(173)
|
||||
DevExtTramp(174)
|
||||
DevExtTramp(175)
|
||||
DevExtTramp(176)
|
||||
DevExtTramp(177)
|
||||
DevExtTramp(178)
|
||||
DevExtTramp(179)
|
||||
DevExtTramp(180)
|
||||
DevExtTramp(181)
|
||||
DevExtTramp(182)
|
||||
DevExtTramp(183)
|
||||
DevExtTramp(184)
|
||||
DevExtTramp(185)
|
||||
DevExtTramp(186)
|
||||
DevExtTramp(187)
|
||||
DevExtTramp(188)
|
||||
DevExtTramp(189)
|
||||
DevExtTramp(190)
|
||||
DevExtTramp(191)
|
||||
DevExtTramp(192)
|
||||
DevExtTramp(193)
|
||||
DevExtTramp(194)
|
||||
DevExtTramp(195)
|
||||
DevExtTramp(196)
|
||||
DevExtTramp(197)
|
||||
DevExtTramp(198)
|
||||
DevExtTramp(199)
|
||||
DevExtTramp(200)
|
||||
DevExtTramp(201)
|
||||
DevExtTramp(202)
|
||||
DevExtTramp(203)
|
||||
DevExtTramp(204)
|
||||
DevExtTramp(205)
|
||||
DevExtTramp(206)
|
||||
DevExtTramp(207)
|
||||
DevExtTramp(208)
|
||||
DevExtTramp(209)
|
||||
DevExtTramp(210)
|
||||
DevExtTramp(211)
|
||||
DevExtTramp(212)
|
||||
DevExtTramp(213)
|
||||
DevExtTramp(214)
|
||||
DevExtTramp(215)
|
||||
DevExtTramp(216)
|
||||
DevExtTramp(217)
|
||||
DevExtTramp(218)
|
||||
DevExtTramp(219)
|
||||
DevExtTramp(220)
|
||||
DevExtTramp(221)
|
||||
DevExtTramp(222)
|
||||
DevExtTramp(223)
|
||||
DevExtTramp(224)
|
||||
DevExtTramp(225)
|
||||
DevExtTramp(226)
|
||||
DevExtTramp(227)
|
||||
DevExtTramp(228)
|
||||
DevExtTramp(229)
|
||||
DevExtTramp(230)
|
||||
DevExtTramp(231)
|
||||
DevExtTramp(232)
|
||||
DevExtTramp(233)
|
||||
DevExtTramp(234)
|
||||
DevExtTramp(235)
|
||||
DevExtTramp(236)
|
||||
DevExtTramp(237)
|
||||
DevExtTramp(238)
|
||||
DevExtTramp(239)
|
||||
DevExtTramp(240)
|
||||
DevExtTramp(241)
|
||||
DevExtTramp(242)
|
||||
DevExtTramp(243)
|
||||
DevExtTramp(244)
|
||||
DevExtTramp(245)
|
||||
DevExtTramp(246)
|
||||
DevExtTramp(247)
|
||||
DevExtTramp(248)
|
||||
DevExtTramp(249)
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext0(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext1(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext2(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext3(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext4(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext5(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext6(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext7(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext8(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext9(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext10(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext11(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext12(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext13(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext14(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext15(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext16(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext17(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext18(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext19(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext20(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext21(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext22(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext23(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext24(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext25(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext26(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext27(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext28(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext29(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext30(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext31(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext32(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext33(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext34(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext35(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext36(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext37(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext38(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext39(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext40(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext41(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext42(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext43(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext44(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext45(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext46(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext47(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext48(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext49(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext50(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext51(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext52(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext53(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext54(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext55(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext56(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext57(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext58(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext59(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext60(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext61(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext62(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext63(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext64(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext65(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext66(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext67(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext68(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext69(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext70(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext71(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext72(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext73(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext74(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext75(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext76(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext77(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext78(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext79(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext80(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext81(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext82(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext83(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext84(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext85(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext86(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext87(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext88(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext89(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext90(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext91(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext92(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext93(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext94(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext95(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext96(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext97(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext98(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext99(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext100(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext101(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext102(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext103(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext104(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext105(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext106(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext107(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext108(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext109(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext110(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext111(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext112(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext113(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext114(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext115(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext116(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext117(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext118(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext119(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext120(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext121(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext122(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext123(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext124(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext125(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext126(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext127(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext128(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext129(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext130(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext131(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext132(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext133(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext134(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext135(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext136(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext137(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext138(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext139(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext140(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext141(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext142(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext143(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext144(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext145(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext146(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext147(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext148(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext149(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext150(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext151(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext152(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext153(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext154(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext155(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext156(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext157(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext158(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext159(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext160(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext161(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext162(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext163(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext164(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext165(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext166(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext167(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext168(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext169(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext170(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext171(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext172(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext173(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext174(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext175(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext176(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext177(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext178(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext179(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext180(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext181(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext182(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext183(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext184(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext185(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext186(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext187(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext188(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext189(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext190(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext191(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext192(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext193(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext194(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext195(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext196(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext197(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext198(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext199(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext200(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext201(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext202(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext203(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext204(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext205(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext206(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext207(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext208(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext209(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext210(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext211(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext212(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext213(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext214(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext215(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext216(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext217(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext218(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext219(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext220(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext221(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext222(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext223(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext224(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext225(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext226(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext227(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext228(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext229(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext230(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext231(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext232(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext233(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext234(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext235(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext236(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext237(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext238(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext239(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext240(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext241(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext242(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext243(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext244(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext245(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext246(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext247(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext248(VkDevice device);
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext249(VkDevice device);
|
||||
|
||||
void *loader_get_dev_ext_trampoline(uint32_t index) {
|
||||
switch (index) {
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
* limitations under the License.
|
||||
*
|
||||
* Author: Mark Young <marky@lunarg.com>
|
||||
* Author: Lenny Komow <lenny@lunarg.com>
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE
|
||||
|
@ -36,6 +37,8 @@
|
|||
VkResult setupLoaderTrampPhysDevGroups(VkInstance instance);
|
||||
VkResult setupLoaderTermPhysDevGroups(struct loader_instance *inst);
|
||||
|
||||
// ---- VK_KHX_device_group extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceGroupsKHX(
|
||||
VkInstance instance, uint32_t *pPhysicalDeviceGroupCount,
|
||||
VkPhysicalDeviceGroupPropertiesKHX *pPhysicalDeviceGroupProperties) {
|
||||
|
@ -125,6 +128,8 @@ out:
|
|||
return res;
|
||||
}
|
||||
|
||||
// ---- VK_NV_external_memory_capabilities extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL
|
||||
GetPhysicalDeviceExternalImageFormatPropertiesNV(
|
||||
VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
|
||||
|
@ -173,6 +178,760 @@ terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV(
|
|||
externalHandleType, pExternalImageFormatProperties);
|
||||
}
|
||||
|
||||
// ---- VK_KHR_get_physical_device_properties2 extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR *pFeatures) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceFeatures2KHR(unwrapped_phys_dev, pFeatures);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceFeatures2KHR *pFeatures) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceFeatures2KHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceFeatures2KHR(phys_dev_term->phys_dev, pFeatures);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceFeatures2KHR: Emulating call in ICD \"%s\" using vkGetPhysicalDeviceFeatures",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
// Write to the VkPhysicalDeviceFeatures2KHR struct
|
||||
icd_term->dispatch.GetPhysicalDeviceFeatures(phys_dev_term->phys_dev, &pFeatures->features);
|
||||
|
||||
void *pNext = pFeatures->pNext;
|
||||
while (pNext != NULL) {
|
||||
switch (*(VkStructureType *)pNext) {
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX: {
|
||||
// Skip the check if VK_KHX_multiview is enabled because it's a device extension
|
||||
// Write to the VkPhysicalDeviceMultiviewFeaturesKHX struct
|
||||
VkPhysicalDeviceMultiviewFeaturesKHX *multiview_features = pNext;
|
||||
multiview_features->multiview = VK_FALSE;
|
||||
multiview_features->multiviewGeometryShader = VK_FALSE;
|
||||
multiview_features->multiviewTessellationShader = VK_FALSE;
|
||||
|
||||
pNext = multiview_features->pNext;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceFeatures2KHR: Emulation found unrecognized structure type in pFeatures->pNext - "
|
||||
"this struct will be ignored");
|
||||
|
||||
struct VkStructureHeader *header = pNext;
|
||||
pNext = (void *)header->pNext;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceProperties2KHR *pProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceProperties2KHR(unwrapped_phys_dev, pProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceProperties2KHR *pProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceProperties2KHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceProperties2KHR(phys_dev_term->phys_dev, pProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceProperties2KHR: Emulating call in ICD \"%s\" using vkGetPhysicalDeviceProperties",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
// Write to the VkPhysicalDeviceProperties2KHR struct
|
||||
icd_term->dispatch.GetPhysicalDeviceProperties(phys_dev_term->phys_dev, &pProperties->properties);
|
||||
|
||||
void *pNext = pProperties->pNext;
|
||||
while (pNext != NULL) {
|
||||
switch (*(VkStructureType *)pNext) {
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR: {
|
||||
VkPhysicalDeviceIDPropertiesKHR *id_properties = pNext;
|
||||
|
||||
// Verify that "VK_KHR_external_memory_capabilities" is enabled
|
||||
if (icd_term->this_instance->enabled_known_extensions.khr_external_memory_capabilities) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceProperties2KHR: Emulation cannot generate unique IDs for struct "
|
||||
"VkPhysicalDeviceIDPropertiesKHR - setting IDs to zero instead");
|
||||
|
||||
// Write to the VkPhysicalDeviceIDPropertiesKHR struct
|
||||
memset(id_properties->deviceUUID, 0, VK_UUID_SIZE);
|
||||
memset(id_properties->driverUUID, 0, VK_UUID_SIZE);
|
||||
id_properties->deviceLUIDValid = VK_FALSE;
|
||||
}
|
||||
|
||||
pNext = id_properties->pNext;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceProperties2KHR: Emulation found unrecognized structure type in "
|
||||
"pProperties->pNext - this struct will be ignored");
|
||||
|
||||
struct VkStructureHeader *header = pNext;
|
||||
pNext = (void *)header->pNext;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format,
|
||||
VkFormatProperties2KHR *pFormatProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceFormatProperties2KHR(unwrapped_phys_dev, format, pFormatProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format,
|
||||
VkFormatProperties2KHR *pFormatProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceFormatProperties2KHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceFormatProperties2KHR(phys_dev_term->phys_dev, format, pFormatProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(
|
||||
icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceFormatProperties2KHR: Emulating call in ICD \"%s\" using vkGetPhysicalDeviceFormatProperties",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
// Write to the VkFormatProperties2KHR struct
|
||||
icd_term->dispatch.GetPhysicalDeviceFormatProperties(phys_dev_term->phys_dev, format, &pFormatProperties->formatProperties);
|
||||
|
||||
if (pFormatProperties->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceFormatProperties2KHR: Emulation found unrecognized structure type in "
|
||||
"pFormatProperties->pNext - this struct will be ignored");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *pImageFormatInfo,
|
||||
VkImageFormatProperties2KHR *pImageFormatProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->GetPhysicalDeviceImageFormatProperties2KHR(unwrapped_phys_dev, pImageFormatInfo, pImageFormatProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceImageFormatProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *pImageFormatInfo,
|
||||
VkImageFormatProperties2KHR *pImageFormatProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceImageFormatProperties2KHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
return icd_term->dispatch.GetPhysicalDeviceImageFormatProperties2KHR(phys_dev_term->phys_dev, pImageFormatInfo,
|
||||
pImageFormatProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceImageFormatProperties2KHR: Emulating call in ICD \"%s\" using "
|
||||
"vkGetPhysicalDeviceImageFormatProperties",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
// If there is more info in either pNext, then this is unsupported
|
||||
if (pImageFormatInfo->pNext != NULL || pImageFormatProperties->pNext != NULL) {
|
||||
return VK_ERROR_FORMAT_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
// Write to the VkImageFormatProperties2KHR struct
|
||||
return icd_term->dispatch.GetPhysicalDeviceImageFormatProperties(
|
||||
phys_dev_term->phys_dev, pImageFormatInfo->format, pImageFormatInfo->type, pImageFormatInfo->tiling,
|
||||
pImageFormatInfo->usage, pImageFormatInfo->flags, &pImageFormatProperties->imageFormatProperties);
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
uint32_t *pQueueFamilyPropertyCount,
|
||||
VkQueueFamilyProperties2KHR *pQueueFamilyProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceQueueFamilyProperties2KHR(unwrapped_phys_dev, pQueueFamilyPropertyCount, pQueueFamilyProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, uint32_t *pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR *pQueueFamilyProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceQueueFamilyProperties2KHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceQueueFamilyProperties2KHR(phys_dev_term->phys_dev, pQueueFamilyPropertyCount,
|
||||
pQueueFamilyProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceQueueFamilyProperties2KHR: Emulating call in ICD \"%s\" using "
|
||||
"vkGetPhysicalDeviceQueueFamilyProperties",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
if (pQueueFamilyProperties == NULL || *pQueueFamilyPropertyCount == 0) {
|
||||
// Write to pQueueFamilyPropertyCount
|
||||
icd_term->dispatch.GetPhysicalDeviceQueueFamilyProperties(phys_dev_term->phys_dev, pQueueFamilyPropertyCount, NULL);
|
||||
} else {
|
||||
// Allocate a temporary array for the output of the old function
|
||||
VkQueueFamilyProperties *properties = loader_stack_alloc(*pQueueFamilyPropertyCount * sizeof(VkQueueFamilyProperties));
|
||||
if (properties == NULL) {
|
||||
*pQueueFamilyPropertyCount = 0;
|
||||
loader_log(
|
||||
icd_term->this_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceQueueFamilyProperties2KHR: Out of memory - Failed to allocate array for loader emulation.");
|
||||
return;
|
||||
}
|
||||
|
||||
icd_term->dispatch.GetPhysicalDeviceQueueFamilyProperties(phys_dev_term->phys_dev, pQueueFamilyPropertyCount,
|
||||
properties);
|
||||
for (uint32_t i = 0; i < *pQueueFamilyPropertyCount; ++i) {
|
||||
// Write to the VkQueueFamilyProperties2KHR struct
|
||||
memcpy(&pQueueFamilyProperties[i].queueFamilyProperties, &properties[i], sizeof(VkQueueFamilyProperties));
|
||||
|
||||
if (pQueueFamilyProperties[i].pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceQueueFamilyProperties2KHR: Emulation found unrecognized structure type in "
|
||||
"pQueueFamilyProperties[%d].pNext - this struct will be ignored",
|
||||
i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceMemoryProperties2KHR *pMemoryProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceMemoryProperties2KHR(unwrapped_phys_dev, pMemoryProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMemoryProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR *pMemoryProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceMemoryProperties2KHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceMemoryProperties2KHR(phys_dev_term->phys_dev, pMemoryProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(
|
||||
icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceMemoryProperties2KHR: Emulating call in ICD \"%s\" using vkGetPhysicalDeviceMemoryProperties",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
// Write to the VkPhysicalDeviceMemoryProperties2KHR struct
|
||||
icd_term->dispatch.GetPhysicalDeviceMemoryProperties(phys_dev_term->phys_dev, &pMemoryProperties->memoryProperties);
|
||||
|
||||
if (pMemoryProperties->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceMemoryProperties2KHR: Emulation found unrecognized structure type in "
|
||||
"pMemoryProperties->pNext - this struct will be ignored");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR *pFormatInfo, uint32_t *pPropertyCount,
|
||||
VkSparseImageFormatProperties2KHR *pProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceSparseImageFormatProperties2KHR(unwrapped_phys_dev, pFormatInfo, pPropertyCount, pProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceSparseImageFormatProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR *pFormatInfo, uint32_t *pPropertyCount,
|
||||
VkSparseImageFormatProperties2KHR *pProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceSparseImageFormatProperties2KHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceSparseImageFormatProperties2KHR(phys_dev_term->phys_dev, pFormatInfo, pPropertyCount,
|
||||
pProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSparseImageFormatProperties2KHR: Emulating call in ICD \"%s\" using "
|
||||
"vkGetPhysicalDeviceSparseImageFormatProperties",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
if (pFormatInfo->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSparseImageFormatProperties2KHR: Emulation found unrecognized structure type in "
|
||||
"pFormatInfo->pNext - this struct will be ignored");
|
||||
}
|
||||
|
||||
if (pProperties == NULL || *pPropertyCount == 0) {
|
||||
// Write to pPropertyCount
|
||||
icd_term->dispatch.GetPhysicalDeviceSparseImageFormatProperties(
|
||||
phys_dev_term->phys_dev, pFormatInfo->format, pFormatInfo->type, pFormatInfo->samples, pFormatInfo->usage,
|
||||
pFormatInfo->tiling, pPropertyCount, NULL);
|
||||
} else {
|
||||
// Allocate a temporary array for the output of the old function
|
||||
VkSparseImageFormatProperties *properties =
|
||||
loader_stack_alloc(*pPropertyCount * sizeof(VkSparseImageMemoryRequirements));
|
||||
if (properties == NULL) {
|
||||
*pPropertyCount = 0;
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSparseImageFormatProperties2KHR: Out of memory - Failed to allocate array for "
|
||||
"loader emulation.");
|
||||
return;
|
||||
}
|
||||
|
||||
icd_term->dispatch.GetPhysicalDeviceSparseImageFormatProperties(
|
||||
phys_dev_term->phys_dev, pFormatInfo->format, pFormatInfo->type, pFormatInfo->samples, pFormatInfo->usage,
|
||||
pFormatInfo->tiling, pPropertyCount, properties);
|
||||
for (uint32_t i = 0; i < *pPropertyCount; ++i) {
|
||||
// Write to the VkSparseImageFormatProperties2KHR struct
|
||||
memcpy(&pProperties[i].properties, &properties[i], sizeof(VkSparseImageFormatProperties));
|
||||
|
||||
if (pProperties[i].pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSparseImageFormatProperties2KHR: Emulation found unrecognized structure type in "
|
||||
"pProperties[%d].pNext - this struct will be ignored",
|
||||
i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
VkSurfaceCapabilities2KHR *pSurfaceCapabilities) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->GetPhysicalDeviceSurfaceCapabilities2KHR(unwrapped_phys_dev, pSurfaceInfo, pSurfaceCapabilities);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
VkSurfaceCapabilities2KHR *pSurfaceCapabilities) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
VkIcdSurface *icd_surface = (VkIcdSurface *)(pSurfaceInfo->surface);
|
||||
uint8_t icd_index = phys_dev_term->icd_index;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceSurfaceCapabilities2KHR != NULL) {
|
||||
// Pass the call to the driver, possibly unwrapping the ICD surface
|
||||
if (icd_surface->real_icd_surfaces != NULL && (void *)icd_surface->real_icd_surfaces[icd_index] != NULL) {
|
||||
VkPhysicalDeviceSurfaceInfo2KHR info_copy = *pSurfaceInfo;
|
||||
info_copy.surface = icd_surface->real_icd_surfaces[icd_index];
|
||||
return icd_term->dispatch.GetPhysicalDeviceSurfaceCapabilities2KHR(phys_dev_term->phys_dev, &info_copy,
|
||||
pSurfaceCapabilities);
|
||||
} else {
|
||||
return icd_term->dispatch.GetPhysicalDeviceSurfaceCapabilities2KHR(phys_dev_term->phys_dev, pSurfaceInfo,
|
||||
pSurfaceCapabilities);
|
||||
}
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSurfaceCapabilities2KHR: Emulating call in ICD \"%s\" using "
|
||||
"vkGetPhysicalDeviceSurfaceCapabilitiesKHR",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
if (pSurfaceInfo->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSurfaceCapabilities2KHR: Emulation found unrecognized structure type in "
|
||||
"pSurfaceInfo->pNext - this struct will be ignored");
|
||||
}
|
||||
|
||||
// Write to the VkSurfaceCapabilities2KHR struct
|
||||
VkSurfaceKHR surface = pSurfaceInfo->surface;
|
||||
if (icd_surface->real_icd_surfaces != NULL && (void *)icd_surface->real_icd_surfaces[icd_index] != NULL) {
|
||||
surface = icd_surface->real_icd_surfaces[icd_index];
|
||||
}
|
||||
VkResult res = icd_term->dispatch.GetPhysicalDeviceSurfaceCapabilitiesKHR(phys_dev_term->phys_dev, surface,
|
||||
&pSurfaceCapabilities->surfaceCapabilities);
|
||||
|
||||
if (pSurfaceCapabilities->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSurfaceCapabilities2KHR: Emulation found unrecognized structure type in "
|
||||
"pSurfaceCapabilities->pNext - this struct will be ignored");
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
uint32_t *pSurfaceFormatCount,
|
||||
VkSurfaceFormat2KHR *pSurfaceFormats) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->GetPhysicalDeviceSurfaceFormats2KHR(unwrapped_phys_dev, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
uint32_t *pSurfaceFormatCount,
|
||||
VkSurfaceFormat2KHR *pSurfaceFormats) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
VkIcdSurface *icd_surface = (VkIcdSurface *)(pSurfaceInfo->surface);
|
||||
uint8_t icd_index = phys_dev_term->icd_index;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceSurfaceFormats2KHR != NULL) {
|
||||
// Pass the call to the driver, possibly unwrapping the ICD surface
|
||||
if (icd_surface->real_icd_surfaces != NULL && (void *)icd_surface->real_icd_surfaces[icd_index] != NULL) {
|
||||
VkPhysicalDeviceSurfaceInfo2KHR info_copy = *pSurfaceInfo;
|
||||
info_copy.surface = icd_surface->real_icd_surfaces[icd_index];
|
||||
return icd_term->dispatch.GetPhysicalDeviceSurfaceFormats2KHR(phys_dev_term->phys_dev, &info_copy, pSurfaceFormatCount,
|
||||
pSurfaceFormats);
|
||||
} else {
|
||||
return icd_term->dispatch.GetPhysicalDeviceSurfaceFormats2KHR(phys_dev_term->phys_dev, pSurfaceInfo,
|
||||
pSurfaceFormatCount, pSurfaceFormats);
|
||||
}
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSurfaceFormats2KHR: Emulating call in ICD \"%s\" using vkGetPhysicalDeviceSurfaceFormatsKHR",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
if (pSurfaceInfo->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSurfaceFormats2KHR: Emulation found unrecognized structure type in pSurfaceInfo->pNext "
|
||||
"- this struct will be ignored");
|
||||
}
|
||||
|
||||
VkSurfaceKHR surface = pSurfaceInfo->surface;
|
||||
if (icd_surface->real_icd_surfaces != NULL && (void *)icd_surface->real_icd_surfaces[icd_index] != NULL) {
|
||||
surface = icd_surface->real_icd_surfaces[icd_index];
|
||||
}
|
||||
|
||||
if (*pSurfaceFormatCount == 0 || pSurfaceFormats == NULL) {
|
||||
// Write to pSurfaceFormatCount
|
||||
return icd_term->dispatch.GetPhysicalDeviceSurfaceFormatsKHR(phys_dev_term->phys_dev, surface, pSurfaceFormatCount,
|
||||
NULL);
|
||||
} else {
|
||||
// Allocate a temporary array for the output of the old function
|
||||
VkSurfaceFormatKHR *formats = loader_stack_alloc(*pSurfaceFormatCount * sizeof(VkSurfaceFormatKHR));
|
||||
if (formats == NULL) {
|
||||
return VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
}
|
||||
|
||||
VkResult res = icd_term->dispatch.GetPhysicalDeviceSurfaceFormatsKHR(phys_dev_term->phys_dev, surface,
|
||||
pSurfaceFormatCount, formats);
|
||||
for (uint32_t i = 0; i < *pSurfaceFormatCount; ++i) {
|
||||
pSurfaceFormats[i].surfaceFormat = formats[i];
|
||||
if (pSurfaceFormats[i].pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSurfaceFormats2KHR: Emulation found unrecognized structure type in "
|
||||
"pSurfaceFormats[%d].pNext - this struct will be ignored",
|
||||
i);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---- VK_EXT_display_surface_counter extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
|
||||
VkSurfaceCapabilities2EXT *pSurfaceCapabilities) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->GetPhysicalDeviceSurfaceCapabilities2EXT(unwrapped_phys_dev, surface, pSurfaceCapabilities);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2EXT(
|
||||
VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT *pSurfaceCapabilities) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
VkIcdSurface *icd_surface = (VkIcdSurface *)(surface);
|
||||
uint8_t icd_index = phys_dev_term->icd_index;
|
||||
|
||||
// Unwrap the surface if needed
|
||||
VkSurfaceKHR unwrapped_surface = surface;
|
||||
if (icd_surface->real_icd_surfaces != NULL && (void *)icd_surface->real_icd_surfaces[icd_index] != NULL) {
|
||||
unwrapped_surface = icd_surface->real_icd_surfaces[icd_index];
|
||||
}
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceSurfaceCapabilities2EXT != NULL) {
|
||||
// Pass the call to the driver
|
||||
return icd_term->dispatch.GetPhysicalDeviceSurfaceCapabilities2EXT(phys_dev_term->phys_dev, unwrapped_surface,
|
||||
pSurfaceCapabilities);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSurfaceCapabilities2EXT: Emulating call in ICD \"%s\" using "
|
||||
"vkGetPhysicalDeviceSurfaceCapabilitiesKHR",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
VkSurfaceCapabilitiesKHR surface_caps;
|
||||
VkResult res =
|
||||
icd_term->dispatch.GetPhysicalDeviceSurfaceCapabilitiesKHR(phys_dev_term->phys_dev, unwrapped_surface, &surface_caps);
|
||||
pSurfaceCapabilities->minImageCount = surface_caps.minImageCount;
|
||||
pSurfaceCapabilities->maxImageCount = surface_caps.maxImageCount;
|
||||
pSurfaceCapabilities->currentExtent = surface_caps.currentExtent;
|
||||
pSurfaceCapabilities->minImageExtent = surface_caps.minImageExtent;
|
||||
pSurfaceCapabilities->maxImageExtent = surface_caps.maxImageExtent;
|
||||
pSurfaceCapabilities->maxImageArrayLayers = surface_caps.maxImageArrayLayers;
|
||||
pSurfaceCapabilities->supportedTransforms = surface_caps.supportedTransforms;
|
||||
pSurfaceCapabilities->currentTransform = surface_caps.currentTransform;
|
||||
pSurfaceCapabilities->supportedCompositeAlpha = surface_caps.supportedCompositeAlpha;
|
||||
pSurfaceCapabilities->supportedUsageFlags = surface_caps.supportedUsageFlags;
|
||||
pSurfaceCapabilities->supportedSurfaceCounters = 0;
|
||||
|
||||
if (pSurfaceCapabilities->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceSurfaceCapabilities2EXT: Emulation found unrecognized structure type in "
|
||||
"pSurfaceCapabilities->pNext - this struct will be ignored");
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- VK_EXT_direct_mode_display extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->ReleaseDisplayEXT(unwrapped_phys_dev, display);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.ReleaseDisplayEXT == NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"ICD \"%s\" associated with VkPhysicalDevice does not support vkReleaseDisplayEXT - Consequently, the call is "
|
||||
"invalid because it should not be possible to acquire a display on this device",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
}
|
||||
return icd_term->dispatch.ReleaseDisplayEXT(phys_dev_term->phys_dev, display);
|
||||
}
|
||||
|
||||
// ---- VK_EXT_acquire_xlib_display extension trampoline/terminators
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
||||
VKAPI_ATTR VkResult VKAPI_CALL AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display *dpy, VkDisplayKHR display) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->AcquireXlibDisplayEXT(unwrapped_phys_dev, dpy, display);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display *dpy,
|
||||
VkDisplayKHR display) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.AcquireXlibDisplayEXT != NULL) {
|
||||
// Pass the call to the driver
|
||||
return icd_term->dispatch.AcquireXlibDisplayEXT(phys_dev_term->phys_dev, dpy, display);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkAcquireXLibDisplayEXT: Emulating call in ICD \"%s\" by returning error", icd_term->scanned_icd->lib_name);
|
||||
|
||||
// Fail for the unsupported command
|
||||
return VK_ERROR_INITIALIZATION_FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display *dpy, RROutput rrOutput,
|
||||
VkDisplayKHR *pDisplay) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
return disp->GetRandROutputDisplayEXT(unwrapped_phys_dev, dpy, rrOutput, pDisplay);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display *dpy, RROutput rrOutput,
|
||||
VkDisplayKHR *pDisplay) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetRandROutputDisplayEXT != NULL) {
|
||||
// Pass the call to the driver
|
||||
return icd_term->dispatch.GetRandROutputDisplayEXT(phys_dev_term->phys_dev, dpy, rrOutput, pDisplay);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetRandROutputDisplayEXT: Emulating call in ICD \"%s\" by returning null display",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
// Return a null handle to indicate this can't be done
|
||||
*pDisplay = VK_NULL_HANDLE;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
||||
|
||||
// ---- VK_KHR_external_memory_capabilities extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalBufferPropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR *pExternalBufferInfo,
|
||||
VkExternalBufferPropertiesKHR *pExternalBufferProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceExternalBufferPropertiesKHR(unwrapped_phys_dev, pExternalBufferInfo, pExternalBufferProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalBufferPropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR *pExternalBufferInfo,
|
||||
VkExternalBufferPropertiesKHR *pExternalBufferProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceExternalBufferPropertiesKHR) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceExternalBufferPropertiesKHR(phys_dev_term->phys_dev, pExternalBufferInfo,
|
||||
pExternalBufferProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalBufferPropertiesKHR: Emulating call in ICD \"%s\"", icd_term->scanned_icd->lib_name);
|
||||
|
||||
if (pExternalBufferInfo->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalBufferPropertiesKHR: Emulation found unrecognized structure type in "
|
||||
"pExternalBufferInfo->pNext - this struct will be ignored");
|
||||
}
|
||||
|
||||
// Fill in everything being unsupported
|
||||
memset(&pExternalBufferProperties->externalMemoryProperties, 0, sizeof(VkExternalMemoryPropertiesKHR));
|
||||
|
||||
if (pExternalBufferProperties->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalBufferPropertiesKHR: Emulation found unrecognized structure type in "
|
||||
"pExternalBufferProperties->pNext - this struct will be ignored");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---- VK_KHR_external_semaphore_capabilities extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalSemaphorePropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR *pExternalSemaphoreInfo,
|
||||
VkExternalSemaphorePropertiesKHR *pExternalSemaphoreProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceExternalSemaphorePropertiesKHR(unwrapped_phys_dev, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalSemaphorePropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR *pExternalSemaphoreInfo,
|
||||
VkExternalSemaphorePropertiesKHR *pExternalSemaphoreProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceExternalSemaphorePropertiesKHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceExternalSemaphorePropertiesKHR(phys_dev_term->phys_dev, pExternalSemaphoreInfo,
|
||||
pExternalSemaphoreProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR: Emulating call in ICD \"%s\"",
|
||||
icd_term->scanned_icd->lib_name);
|
||||
|
||||
if (pExternalSemaphoreInfo->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR: Emulation found unrecognized structure type in "
|
||||
"pExternalSemaphoreInfo->pNext - this struct will be ignored");
|
||||
}
|
||||
|
||||
// Fill in everything being unsupported
|
||||
pExternalSemaphoreProperties->exportFromImportedHandleTypes = 0;
|
||||
pExternalSemaphoreProperties->compatibleHandleTypes = 0;
|
||||
pExternalSemaphoreProperties->externalSemaphoreFeatures = 0;
|
||||
|
||||
if (pExternalSemaphoreProperties->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR: Emulation found unrecognized structure type in "
|
||||
"pExternalSemaphoreProperties->pNext - this struct will be ignored");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---- VK_KHR_external_fence_capabilities extension trampoline/terminators
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalFencePropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR *pExternalFenceInfo,
|
||||
VkExternalFencePropertiesKHR *pExternalFenceProperties) {
|
||||
const VkLayerInstanceDispatchTable *disp;
|
||||
VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
|
||||
disp = loader_get_instance_layer_dispatch(physicalDevice);
|
||||
disp->GetPhysicalDeviceExternalFencePropertiesKHR(unwrapped_phys_dev, pExternalFenceInfo, pExternalFenceProperties);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalFencePropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR *pExternalFenceInfo,
|
||||
VkExternalFencePropertiesKHR *pExternalFenceProperties) {
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
|
||||
|
||||
if (icd_term->dispatch.GetPhysicalDeviceExternalFencePropertiesKHR != NULL) {
|
||||
// Pass the call to the driver
|
||||
icd_term->dispatch.GetPhysicalDeviceExternalFencePropertiesKHR(phys_dev_term->phys_dev, pExternalFenceInfo,
|
||||
pExternalFenceProperties);
|
||||
} else {
|
||||
// Emulate the call
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalFencePropertiesKHR: Emulating call in ICD \"%s\"", icd_term->scanned_icd->lib_name);
|
||||
|
||||
if (pExternalFenceInfo->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalFencePropertiesKHR: Emulation found unrecognized structure type in "
|
||||
"pExternalFenceInfo->pNext - this struct will be ignored");
|
||||
}
|
||||
|
||||
// Fill in everything being unsupported
|
||||
pExternalFenceProperties->exportFromImportedHandleTypes = 0;
|
||||
pExternalFenceProperties->compatibleHandleTypes = 0;
|
||||
pExternalFenceProperties->externalFenceFeatures = 0;
|
||||
|
||||
if (pExternalFenceProperties->pNext != NULL) {
|
||||
loader_log(icd_term->this_instance, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
|
||||
"vkGetPhysicalDeviceExternalFencePropertiesKHR: Emulation found unrecognized structure type in "
|
||||
"pExternalFenceProperties->pNext - this struct will be ignored");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Helper functions
|
||||
|
||||
VkResult setupLoaderTrampPhysDevGroups(VkInstance instance) {
|
||||
VkResult res = VK_SUCCESS;
|
||||
|
@ -583,4 +1342,4 @@ out:
|
|||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,3 +47,114 @@ terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV(
|
|||
VkExternalMemoryHandleTypeFlagsNV externalHandleType,
|
||||
VkExternalImageFormatPropertiesNV *pExternalImageFormatProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceFeatures2KHR* pFeatures);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceProperties2KHR* pProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceProperties2KHR* pProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format,
|
||||
VkFormatProperties2KHR* pFormatProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format,
|
||||
VkFormatProperties2KHR* pFormatProperties);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceImageFormatProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
|
||||
VkImageFormatProperties2KHR* pImageFormatProperties);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceImageFormatProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
|
||||
VkImageFormatProperties2KHR* pImageFormatProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
uint32_t* pQueueFamilyPropertyCount,
|
||||
VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMemoryProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceSparseImageFormatProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount,
|
||||
VkSparseImageFormatProperties2KHR* pProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceSparseImageFormatProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount,
|
||||
VkSparseImageFormatProperties2KHR* pProperties);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
||||
VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
||||
VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
||||
uint32_t* pSurfaceFormatCount,
|
||||
VkSurfaceFormat2KHR* pSurfaceFormats);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
||||
uint32_t* pSurfaceFormatCount,
|
||||
VkSurfaceFormat2KHR* pSurfaceFormats);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
|
||||
VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,
|
||||
VkSurfaceKHR surface,
|
||||
VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
||||
VKAPI_ATTR VkResult VKAPI_CALL AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy,
|
||||
VkDisplayKHR display);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput,
|
||||
VkDisplayKHR* pDisplay);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput,
|
||||
VkDisplayKHR* pDisplay);
|
||||
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalBufferPropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
|
||||
VkExternalBufferPropertiesKHR* pExternalBufferProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalBufferPropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
|
||||
VkExternalBufferPropertiesKHR* pExternalBufferProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalSemaphorePropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
|
||||
VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalSemaphorePropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
|
||||
VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalFencePropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
|
||||
VkExternalFencePropertiesKHR* pExternalFenceProperties);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalFencePropertiesKHR(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
|
||||
VkExternalFencePropertiesKHR* pExternalFenceProperties);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
*
|
||||
* Copyright (c) 2014-2016 The Khronos Group Inc.
|
||||
* Copyright (c) 2014-2016 Valve Corporation
|
||||
* Copyright (c) 2014-2016 LunarG, Inc.
|
||||
* Copyright (c) 2014-2017 The Khronos Group Inc.
|
||||
* Copyright (c) 2014-2017 Valve Corporation
|
||||
* Copyright (c) 2014-2017 LunarG, Inc.
|
||||
* Copyright (C) 2015 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
@ -48,9 +48,6 @@
|
|||
#define DEBUG_DISABLE_APP_ALLOCATORS 0
|
||||
|
||||
#define MAX_STRING_SIZE 1024
|
||||
#define VK_MAJOR(version) (version >> 22)
|
||||
#define VK_MINOR(version) ((version >> 12) & 0x3ff)
|
||||
#define VK_PATCH(version) (version & 0xfff)
|
||||
|
||||
// This is defined in vk_layer.h, but if there's problems we need to create the define
|
||||
// here.
|
||||
|
@ -58,10 +55,10 @@
|
|||
#define MAX_NUM_UNKNOWN_EXTS 250
|
||||
#endif
|
||||
|
||||
enum layer_type {
|
||||
VK_LAYER_TYPE_INSTANCE_EXPLICIT = 0x1,
|
||||
VK_LAYER_TYPE_INSTANCE_IMPLICIT = 0x2,
|
||||
VK_LAYER_TYPE_META_EXPLICT = 0x4,
|
||||
enum layer_type_flags {
|
||||
VK_LAYER_TYPE_FLAG_INSTANCE_LAYER = 0x1, // If not set, indicates Device layer
|
||||
VK_LAYER_TYPE_FLAG_EXPLICIT_LAYER = 0x2, // If not set, indicates Implicit layer
|
||||
VK_LAYER_TYPE_FLAG_META_LAYER = 0x4, // If not set, indicates standard layer
|
||||
};
|
||||
|
||||
typedef enum VkStringErrorFlagBits {
|
||||
|
@ -81,10 +78,6 @@ static const char UTF8_THREE_BYTE_MASK = 0xF8;
|
|||
static const char UTF8_DATA_BYTE_CODE = 0x80;
|
||||
static const char UTF8_DATA_BYTE_MASK = 0xC0;
|
||||
|
||||
static const char std_validation_names[6][VK_MAX_EXTENSION_NAME_SIZE] = {
|
||||
"VK_LAYER_GOOGLE_threading", "VK_LAYER_LUNARG_parameter_validation", "VK_LAYER_LUNARG_object_tracker",
|
||||
"VK_LAYER_LUNARG_core_validation", "VK_LAYER_LUNARG_swapchain", "VK_LAYER_GOOGLE_unique_objects"};
|
||||
|
||||
struct VkStructureHeader {
|
||||
VkStructureType sType;
|
||||
const void *pNext;
|
||||
|
@ -133,7 +126,7 @@ struct loader_layer_functions {
|
|||
|
||||
struct loader_layer_properties {
|
||||
VkLayerProperties info;
|
||||
enum layer_type type;
|
||||
enum layer_type_flags type_flags;
|
||||
uint32_t interface_version; // PFN_vkNegotiateLoaderLayerInterfaceVersion
|
||||
char lib_name[MAX_STRING_SIZE];
|
||||
loader_platform_dl_handle lib_handle;
|
||||
|
@ -142,6 +135,8 @@ struct loader_layer_properties {
|
|||
struct loader_device_extension_list device_extension_list;
|
||||
struct loader_name_value disable_env_var;
|
||||
struct loader_name_value enable_env_var;
|
||||
uint32_t num_component_layers;
|
||||
char (*component_layer_names)[MAX_STRING_SIZE];
|
||||
};
|
||||
|
||||
struct loader_layer_list {
|
||||
|
@ -182,7 +177,13 @@ struct loader_device {
|
|||
VkDevice icd_device; // device object from the icd
|
||||
struct loader_physical_device_term *phys_dev_term;
|
||||
|
||||
struct loader_layer_list activated_layer_list;
|
||||
// List of activated layers.
|
||||
// app_ is the version based on exactly what the application asked for.
|
||||
// This is what must be returned to the application on Enumerate calls.
|
||||
// expanded_ is the version based on expanding meta-layers into their
|
||||
// individual component layers. This is what is used internally.
|
||||
struct loader_layer_list app_activated_layer_list;
|
||||
struct loader_layer_list expanded_activated_layer_list;
|
||||
|
||||
VkAllocationCallbacks alloc_callbacks;
|
||||
|
||||
|
@ -252,8 +253,15 @@ struct loader_instance {
|
|||
struct loader_msg_callback_map_entry *icd_msg_callback_map;
|
||||
|
||||
struct loader_layer_list instance_layer_list;
|
||||
struct loader_layer_list activated_layer_list;
|
||||
bool activated_layers_are_std_val;
|
||||
|
||||
// List of activated layers.
|
||||
// app_ is the version based on exactly what the application asked for.
|
||||
// This is what must be returned to the application on Enumerate calls.
|
||||
// expanded_ is the version based on expanding meta-layers into their
|
||||
// individual component layers. This is what is used internally.
|
||||
struct loader_layer_list app_activated_layer_list;
|
||||
struct loader_layer_list expanded_activated_layer_list;
|
||||
|
||||
VkInstance instance; // layers/ICD instance returned to trampoline
|
||||
|
||||
struct loader_extension_list ext_list; // icds and loaders extensions
|
||||
|
@ -370,7 +378,6 @@ extern THREAD_LOCAL_DECL struct loader_instance *tls_instance;
|
|||
extern LOADER_PLATFORM_THREAD_ONCE_DEFINITION(once_init);
|
||||
extern loader_platform_thread_mutex loader_lock;
|
||||
extern loader_platform_thread_mutex loader_json_lock;
|
||||
extern const char *std_validation_str;
|
||||
|
||||
struct loader_msg_callback_map_entry {
|
||||
VkDebugReportCallbackEXT icd_obj;
|
||||
|
@ -421,16 +428,11 @@ void loader_destroy_layer_list(const struct loader_instance *inst, struct loader
|
|||
struct loader_layer_list *layer_list);
|
||||
void loader_delete_layer_properties(const struct loader_instance *inst, struct loader_layer_list *layer_list);
|
||||
bool loader_find_layer_name_array(const char *name, uint32_t layer_count, const char layer_list[][VK_MAX_EXTENSION_NAME_SIZE]);
|
||||
VkResult loader_expand_layer_names(struct loader_instance *inst, const char *key_name, uint32_t expand_count,
|
||||
const char expand_names[][VK_MAX_EXTENSION_NAME_SIZE], uint32_t *layer_count,
|
||||
char const *const **ppp_layer_names);
|
||||
void loader_init_std_validation_props(struct loader_layer_properties *props);
|
||||
void loader_delete_shadow_inst_layer_names(const struct loader_instance *inst, const VkInstanceCreateInfo *orig,
|
||||
VkInstanceCreateInfo *ours);
|
||||
VkResult loader_add_to_layer_list(const struct loader_instance *inst, struct loader_layer_list *list, uint32_t prop_list_count,
|
||||
const struct loader_layer_properties *props);
|
||||
void loader_find_layer_name_add_list(const struct loader_instance *inst, const char *name, const enum layer_type type,
|
||||
const struct loader_layer_list *search_list, struct loader_layer_list *found_list);
|
||||
void loader_find_layer_name_add_list(const struct loader_instance *inst, const char *name, const enum layer_type_flags type_flags,
|
||||
const struct loader_layer_list *source_list, struct loader_layer_list *target_list,
|
||||
struct loader_layer_list *expanded_target_list);
|
||||
void loader_scanned_icd_clear(const struct loader_instance *inst, struct loader_icd_tramp_list *icd_tramp_list);
|
||||
VkResult loader_icd_scan(const struct loader_instance *inst, struct loader_icd_tramp_list *icd_tramp_list);
|
||||
void loader_layer_scan(const struct loader_instance *inst, struct loader_layer_list *instance_layers);
|
||||
|
@ -478,4 +480,4 @@ VkResult setupLoaderTermPhysDevs(struct loader_instance *inst);
|
|||
|
||||
VkStringErrorFlags vk_string_validate(const int max_length, const char *char_array);
|
||||
|
||||
#endif // LOADER_H
|
||||
#endif // LOADER_H
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
*
|
||||
* Copyright (c) 2016 The Khronos Group Inc.
|
||||
* Copyright (c) 2016 Valve Corporation
|
||||
* Copyright (c) 2016 LunarG, Inc.
|
||||
* Copyright (c) 2016-17 The Khronos Group Inc.
|
||||
* Copyright (c) 2016-17 Valve Corporation
|
||||
* Copyright (c) 2016-17 LunarG, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -17,6 +17,7 @@
|
|||
* limitations under the License.
|
||||
*
|
||||
* Author: Mark Young <marky@lunarg.com>
|
||||
* Author: Lenny Komow <lenny@lunarg.com>
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -33,281 +34,511 @@
|
|||
#pragma GCC optimize(3) // force gcc to use tail-calls
|
||||
#endif
|
||||
|
||||
// Trampoline function macro for unknown physical device extension command.
|
||||
#define PhysDevExtTramp(num) \
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp##num(VkPhysicalDevice physical_device) { \
|
||||
const struct loader_instance_dispatch_table *disp; \
|
||||
disp = loader_get_instance_dispatch(physical_device); \
|
||||
disp->phys_dev_ext[num](loader_unwrap_physical_device(physical_device)); \
|
||||
}
|
||||
|
||||
// Terminator function macro for unknown physical device extension command.
|
||||
#define PhysDevExtTermin(num) \
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin##num(VkPhysicalDevice physical_device) { \
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physical_device; \
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term; \
|
||||
struct loader_instance *inst = (struct loader_instance *)icd_term->this_instance; \
|
||||
if (NULL == icd_term->phys_dev_ext[num]) { \
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, "Extension %s not supported for this physical device", \
|
||||
inst->phys_dev_ext_disp_hash[num].func_name); \
|
||||
} \
|
||||
icd_term->phys_dev_ext[num](phys_dev_term->phys_dev); \
|
||||
}
|
||||
// Declarations for the trampoline
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp0(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp1(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp2(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp3(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp4(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp5(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp6(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp7(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp8(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp9(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp10(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp11(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp12(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp13(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp14(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp15(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp16(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp17(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp18(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp19(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp20(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp21(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp22(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp23(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp24(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp25(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp26(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp27(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp28(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp29(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp30(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp31(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp32(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp33(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp34(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp35(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp36(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp37(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp38(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp39(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp40(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp41(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp42(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp43(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp44(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp45(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp46(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp47(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp48(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp49(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp50(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp51(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp52(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp53(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp54(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp55(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp56(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp57(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp58(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp59(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp60(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp61(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp62(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp63(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp64(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp65(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp66(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp67(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp68(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp69(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp70(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp71(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp72(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp73(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp74(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp75(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp76(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp77(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp78(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp79(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp80(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp81(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp82(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp83(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp84(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp85(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp86(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp87(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp88(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp89(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp90(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp91(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp92(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp93(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp94(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp95(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp96(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp97(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp98(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp99(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp100(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp101(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp102(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp103(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp104(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp105(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp106(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp107(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp108(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp109(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp110(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp111(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp112(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp113(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp114(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp115(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp116(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp117(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp118(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp119(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp120(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp121(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp122(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp123(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp124(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp125(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp126(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp127(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp128(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp129(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp130(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp131(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp132(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp133(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp134(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp135(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp136(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp137(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp138(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp139(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp140(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp141(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp142(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp143(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp144(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp145(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp146(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp147(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp148(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp149(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp150(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp151(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp152(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp153(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp154(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp155(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp156(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp157(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp158(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp159(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp160(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp161(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp162(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp163(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp164(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp165(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp166(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp167(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp168(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp169(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp170(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp171(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp172(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp173(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp174(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp175(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp176(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp177(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp178(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp179(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp180(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp181(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp182(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp183(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp184(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp185(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp186(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp187(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp188(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp189(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp190(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp191(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp192(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp193(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp194(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp195(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp196(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp197(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp198(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp199(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp200(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp201(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp202(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp203(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp204(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp205(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp206(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp207(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp208(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp209(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp210(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp211(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp212(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp213(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp214(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp215(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp216(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp217(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp218(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp219(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp220(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp221(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp222(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp223(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp224(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp225(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp226(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp227(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp228(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp229(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp230(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp231(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp232(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp233(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp234(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp235(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp236(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp237(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp238(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp239(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp240(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp241(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp242(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp243(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp244(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp245(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp246(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp247(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp248(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp249(VkPhysicalDevice);
|
||||
|
||||
// Disable clang-format for lists of macros
|
||||
// clang-format off
|
||||
|
||||
// Instantiations of the trampoline and terminator
|
||||
PhysDevExtTramp(0) PhysDevExtTermin(0)
|
||||
PhysDevExtTramp(1) PhysDevExtTermin(1)
|
||||
PhysDevExtTramp(2) PhysDevExtTermin(2)
|
||||
PhysDevExtTramp(3) PhysDevExtTermin(3)
|
||||
PhysDevExtTramp(4) PhysDevExtTermin(4)
|
||||
PhysDevExtTramp(5) PhysDevExtTermin(5)
|
||||
PhysDevExtTramp(6) PhysDevExtTermin(6)
|
||||
PhysDevExtTramp(7) PhysDevExtTermin(7)
|
||||
PhysDevExtTramp(8) PhysDevExtTermin(8)
|
||||
PhysDevExtTramp(9) PhysDevExtTermin(9)
|
||||
PhysDevExtTramp(10) PhysDevExtTermin(10)
|
||||
PhysDevExtTramp(11) PhysDevExtTermin(11)
|
||||
PhysDevExtTramp(12) PhysDevExtTermin(12)
|
||||
PhysDevExtTramp(13) PhysDevExtTermin(13)
|
||||
PhysDevExtTramp(14) PhysDevExtTermin(14)
|
||||
PhysDevExtTramp(15) PhysDevExtTermin(15)
|
||||
PhysDevExtTramp(16) PhysDevExtTermin(16)
|
||||
PhysDevExtTramp(17) PhysDevExtTermin(17)
|
||||
PhysDevExtTramp(18) PhysDevExtTermin(18)
|
||||
PhysDevExtTramp(19) PhysDevExtTermin(19)
|
||||
PhysDevExtTramp(20) PhysDevExtTermin(20)
|
||||
PhysDevExtTramp(21) PhysDevExtTermin(21)
|
||||
PhysDevExtTramp(22) PhysDevExtTermin(22)
|
||||
PhysDevExtTramp(23) PhysDevExtTermin(23)
|
||||
PhysDevExtTramp(24) PhysDevExtTermin(24)
|
||||
PhysDevExtTramp(25) PhysDevExtTermin(25)
|
||||
PhysDevExtTramp(26) PhysDevExtTermin(26)
|
||||
PhysDevExtTramp(27) PhysDevExtTermin(27)
|
||||
PhysDevExtTramp(28) PhysDevExtTermin(28)
|
||||
PhysDevExtTramp(29) PhysDevExtTermin(29)
|
||||
PhysDevExtTramp(30) PhysDevExtTermin(30)
|
||||
PhysDevExtTramp(31) PhysDevExtTermin(31)
|
||||
PhysDevExtTramp(32) PhysDevExtTermin(32)
|
||||
PhysDevExtTramp(33) PhysDevExtTermin(33)
|
||||
PhysDevExtTramp(34) PhysDevExtTermin(34)
|
||||
PhysDevExtTramp(35) PhysDevExtTermin(35)
|
||||
PhysDevExtTramp(36) PhysDevExtTermin(36)
|
||||
PhysDevExtTramp(37) PhysDevExtTermin(37)
|
||||
PhysDevExtTramp(38) PhysDevExtTermin(38)
|
||||
PhysDevExtTramp(39) PhysDevExtTermin(39)
|
||||
PhysDevExtTramp(40) PhysDevExtTermin(40)
|
||||
PhysDevExtTramp(41) PhysDevExtTermin(41)
|
||||
PhysDevExtTramp(42) PhysDevExtTermin(42)
|
||||
PhysDevExtTramp(43) PhysDevExtTermin(43)
|
||||
PhysDevExtTramp(44) PhysDevExtTermin(44)
|
||||
PhysDevExtTramp(45) PhysDevExtTermin(45)
|
||||
PhysDevExtTramp(46) PhysDevExtTermin(46)
|
||||
PhysDevExtTramp(47) PhysDevExtTermin(47)
|
||||
PhysDevExtTramp(48) PhysDevExtTermin(48)
|
||||
PhysDevExtTramp(49) PhysDevExtTermin(49)
|
||||
PhysDevExtTramp(50) PhysDevExtTermin(50)
|
||||
PhysDevExtTramp(51) PhysDevExtTermin(51)
|
||||
PhysDevExtTramp(52) PhysDevExtTermin(52)
|
||||
PhysDevExtTramp(53) PhysDevExtTermin(53)
|
||||
PhysDevExtTramp(54) PhysDevExtTermin(54)
|
||||
PhysDevExtTramp(55) PhysDevExtTermin(55)
|
||||
PhysDevExtTramp(56) PhysDevExtTermin(56)
|
||||
PhysDevExtTramp(57) PhysDevExtTermin(57)
|
||||
PhysDevExtTramp(58) PhysDevExtTermin(58)
|
||||
PhysDevExtTramp(59) PhysDevExtTermin(59)
|
||||
PhysDevExtTramp(60) PhysDevExtTermin(60)
|
||||
PhysDevExtTramp(61) PhysDevExtTermin(61)
|
||||
PhysDevExtTramp(62) PhysDevExtTermin(62)
|
||||
PhysDevExtTramp(63) PhysDevExtTermin(63)
|
||||
PhysDevExtTramp(64) PhysDevExtTermin(64)
|
||||
PhysDevExtTramp(65) PhysDevExtTermin(65)
|
||||
PhysDevExtTramp(66) PhysDevExtTermin(66)
|
||||
PhysDevExtTramp(67) PhysDevExtTermin(67)
|
||||
PhysDevExtTramp(68) PhysDevExtTermin(68)
|
||||
PhysDevExtTramp(69) PhysDevExtTermin(69)
|
||||
PhysDevExtTramp(70) PhysDevExtTermin(70)
|
||||
PhysDevExtTramp(71) PhysDevExtTermin(71)
|
||||
PhysDevExtTramp(72) PhysDevExtTermin(72)
|
||||
PhysDevExtTramp(73) PhysDevExtTermin(73)
|
||||
PhysDevExtTramp(74) PhysDevExtTermin(74)
|
||||
PhysDevExtTramp(75) PhysDevExtTermin(75)
|
||||
PhysDevExtTramp(76) PhysDevExtTermin(76)
|
||||
PhysDevExtTramp(77) PhysDevExtTermin(77)
|
||||
PhysDevExtTramp(78) PhysDevExtTermin(78)
|
||||
PhysDevExtTramp(79) PhysDevExtTermin(79)
|
||||
PhysDevExtTramp(80) PhysDevExtTermin(80)
|
||||
PhysDevExtTramp(81) PhysDevExtTermin(81)
|
||||
PhysDevExtTramp(82) PhysDevExtTermin(82)
|
||||
PhysDevExtTramp(83) PhysDevExtTermin(83)
|
||||
PhysDevExtTramp(84) PhysDevExtTermin(84)
|
||||
PhysDevExtTramp(85) PhysDevExtTermin(85)
|
||||
PhysDevExtTramp(86) PhysDevExtTermin(86)
|
||||
PhysDevExtTramp(87) PhysDevExtTermin(87)
|
||||
PhysDevExtTramp(88) PhysDevExtTermin(88)
|
||||
PhysDevExtTramp(89) PhysDevExtTermin(89)
|
||||
PhysDevExtTramp(90) PhysDevExtTermin(90)
|
||||
PhysDevExtTramp(91) PhysDevExtTermin(91)
|
||||
PhysDevExtTramp(92) PhysDevExtTermin(92)
|
||||
PhysDevExtTramp(93) PhysDevExtTermin(93)
|
||||
PhysDevExtTramp(94) PhysDevExtTermin(94)
|
||||
PhysDevExtTramp(95) PhysDevExtTermin(95)
|
||||
PhysDevExtTramp(96) PhysDevExtTermin(96)
|
||||
PhysDevExtTramp(97) PhysDevExtTermin(97)
|
||||
PhysDevExtTramp(98) PhysDevExtTermin(98)
|
||||
PhysDevExtTramp(99) PhysDevExtTermin(99)
|
||||
PhysDevExtTramp(100) PhysDevExtTermin(100)
|
||||
PhysDevExtTramp(101) PhysDevExtTermin(101)
|
||||
PhysDevExtTramp(102) PhysDevExtTermin(102)
|
||||
PhysDevExtTramp(103) PhysDevExtTermin(103)
|
||||
PhysDevExtTramp(104) PhysDevExtTermin(104)
|
||||
PhysDevExtTramp(105) PhysDevExtTermin(105)
|
||||
PhysDevExtTramp(106) PhysDevExtTermin(106)
|
||||
PhysDevExtTramp(107) PhysDevExtTermin(107)
|
||||
PhysDevExtTramp(108) PhysDevExtTermin(108)
|
||||
PhysDevExtTramp(109) PhysDevExtTermin(109)
|
||||
PhysDevExtTramp(110) PhysDevExtTermin(110)
|
||||
PhysDevExtTramp(111) PhysDevExtTermin(111)
|
||||
PhysDevExtTramp(112) PhysDevExtTermin(112)
|
||||
PhysDevExtTramp(113) PhysDevExtTermin(113)
|
||||
PhysDevExtTramp(114) PhysDevExtTermin(114)
|
||||
PhysDevExtTramp(115) PhysDevExtTermin(115)
|
||||
PhysDevExtTramp(116) PhysDevExtTermin(116)
|
||||
PhysDevExtTramp(117) PhysDevExtTermin(117)
|
||||
PhysDevExtTramp(118) PhysDevExtTermin(118)
|
||||
PhysDevExtTramp(119) PhysDevExtTermin(119)
|
||||
PhysDevExtTramp(120) PhysDevExtTermin(120)
|
||||
PhysDevExtTramp(121) PhysDevExtTermin(121)
|
||||
PhysDevExtTramp(122) PhysDevExtTermin(122)
|
||||
PhysDevExtTramp(123) PhysDevExtTermin(123)
|
||||
PhysDevExtTramp(124) PhysDevExtTermin(124)
|
||||
PhysDevExtTramp(125) PhysDevExtTermin(125)
|
||||
PhysDevExtTramp(126) PhysDevExtTermin(126)
|
||||
PhysDevExtTramp(127) PhysDevExtTermin(127)
|
||||
PhysDevExtTramp(128) PhysDevExtTermin(128)
|
||||
PhysDevExtTramp(129) PhysDevExtTermin(129)
|
||||
PhysDevExtTramp(130) PhysDevExtTermin(130)
|
||||
PhysDevExtTramp(131) PhysDevExtTermin(131)
|
||||
PhysDevExtTramp(132) PhysDevExtTermin(132)
|
||||
PhysDevExtTramp(133) PhysDevExtTermin(133)
|
||||
PhysDevExtTramp(134) PhysDevExtTermin(134)
|
||||
PhysDevExtTramp(135) PhysDevExtTermin(135)
|
||||
PhysDevExtTramp(136) PhysDevExtTermin(136)
|
||||
PhysDevExtTramp(137) PhysDevExtTermin(137)
|
||||
PhysDevExtTramp(138) PhysDevExtTermin(138)
|
||||
PhysDevExtTramp(139) PhysDevExtTermin(139)
|
||||
PhysDevExtTramp(140) PhysDevExtTermin(140)
|
||||
PhysDevExtTramp(141) PhysDevExtTermin(141)
|
||||
PhysDevExtTramp(142) PhysDevExtTermin(142)
|
||||
PhysDevExtTramp(143) PhysDevExtTermin(143)
|
||||
PhysDevExtTramp(144) PhysDevExtTermin(144)
|
||||
PhysDevExtTramp(145) PhysDevExtTermin(145)
|
||||
PhysDevExtTramp(146) PhysDevExtTermin(146)
|
||||
PhysDevExtTramp(147) PhysDevExtTermin(147)
|
||||
PhysDevExtTramp(148) PhysDevExtTermin(148)
|
||||
PhysDevExtTramp(149) PhysDevExtTermin(149)
|
||||
PhysDevExtTramp(150) PhysDevExtTermin(150)
|
||||
PhysDevExtTramp(151) PhysDevExtTermin(151)
|
||||
PhysDevExtTramp(152) PhysDevExtTermin(152)
|
||||
PhysDevExtTramp(153) PhysDevExtTermin(153)
|
||||
PhysDevExtTramp(154) PhysDevExtTermin(154)
|
||||
PhysDevExtTramp(155) PhysDevExtTermin(155)
|
||||
PhysDevExtTramp(156) PhysDevExtTermin(156)
|
||||
PhysDevExtTramp(157) PhysDevExtTermin(157)
|
||||
PhysDevExtTramp(158) PhysDevExtTermin(158)
|
||||
PhysDevExtTramp(159) PhysDevExtTermin(159)
|
||||
PhysDevExtTramp(160) PhysDevExtTermin(160)
|
||||
PhysDevExtTramp(161) PhysDevExtTermin(161)
|
||||
PhysDevExtTramp(162) PhysDevExtTermin(162)
|
||||
PhysDevExtTramp(163) PhysDevExtTermin(163)
|
||||
PhysDevExtTramp(164) PhysDevExtTermin(164)
|
||||
PhysDevExtTramp(165) PhysDevExtTermin(165)
|
||||
PhysDevExtTramp(166) PhysDevExtTermin(166)
|
||||
PhysDevExtTramp(167) PhysDevExtTermin(167)
|
||||
PhysDevExtTramp(168) PhysDevExtTermin(168)
|
||||
PhysDevExtTramp(169) PhysDevExtTermin(169)
|
||||
PhysDevExtTramp(170) PhysDevExtTermin(170)
|
||||
PhysDevExtTramp(171) PhysDevExtTermin(171)
|
||||
PhysDevExtTramp(172) PhysDevExtTermin(172)
|
||||
PhysDevExtTramp(173) PhysDevExtTermin(173)
|
||||
PhysDevExtTramp(174) PhysDevExtTermin(174)
|
||||
PhysDevExtTramp(175) PhysDevExtTermin(175)
|
||||
PhysDevExtTramp(176) PhysDevExtTermin(176)
|
||||
PhysDevExtTramp(177) PhysDevExtTermin(177)
|
||||
PhysDevExtTramp(178) PhysDevExtTermin(178)
|
||||
PhysDevExtTramp(179) PhysDevExtTermin(179)
|
||||
PhysDevExtTramp(180) PhysDevExtTermin(180)
|
||||
PhysDevExtTramp(181) PhysDevExtTermin(181)
|
||||
PhysDevExtTramp(182) PhysDevExtTermin(182)
|
||||
PhysDevExtTramp(183) PhysDevExtTermin(183)
|
||||
PhysDevExtTramp(184) PhysDevExtTermin(184)
|
||||
PhysDevExtTramp(185) PhysDevExtTermin(185)
|
||||
PhysDevExtTramp(186) PhysDevExtTermin(186)
|
||||
PhysDevExtTramp(187) PhysDevExtTermin(187)
|
||||
PhysDevExtTramp(188) PhysDevExtTermin(188)
|
||||
PhysDevExtTramp(189) PhysDevExtTermin(189)
|
||||
PhysDevExtTramp(190) PhysDevExtTermin(190)
|
||||
PhysDevExtTramp(191) PhysDevExtTermin(191)
|
||||
PhysDevExtTramp(192) PhysDevExtTermin(192)
|
||||
PhysDevExtTramp(193) PhysDevExtTermin(193)
|
||||
PhysDevExtTramp(194) PhysDevExtTermin(194)
|
||||
PhysDevExtTramp(195) PhysDevExtTermin(195)
|
||||
PhysDevExtTramp(196) PhysDevExtTermin(196)
|
||||
PhysDevExtTramp(197) PhysDevExtTermin(197)
|
||||
PhysDevExtTramp(198) PhysDevExtTermin(198)
|
||||
PhysDevExtTramp(199) PhysDevExtTermin(199)
|
||||
PhysDevExtTramp(200) PhysDevExtTermin(200)
|
||||
PhysDevExtTramp(201) PhysDevExtTermin(201)
|
||||
PhysDevExtTramp(202) PhysDevExtTermin(202)
|
||||
PhysDevExtTramp(203) PhysDevExtTermin(203)
|
||||
PhysDevExtTramp(204) PhysDevExtTermin(204)
|
||||
PhysDevExtTramp(205) PhysDevExtTermin(205)
|
||||
PhysDevExtTramp(206) PhysDevExtTermin(206)
|
||||
PhysDevExtTramp(207) PhysDevExtTermin(207)
|
||||
PhysDevExtTramp(208) PhysDevExtTermin(208)
|
||||
PhysDevExtTramp(209) PhysDevExtTermin(209)
|
||||
PhysDevExtTramp(210) PhysDevExtTermin(210)
|
||||
PhysDevExtTramp(211) PhysDevExtTermin(211)
|
||||
PhysDevExtTramp(212) PhysDevExtTermin(212)
|
||||
PhysDevExtTramp(213) PhysDevExtTermin(213)
|
||||
PhysDevExtTramp(214) PhysDevExtTermin(214)
|
||||
PhysDevExtTramp(215) PhysDevExtTermin(215)
|
||||
PhysDevExtTramp(216) PhysDevExtTermin(216)
|
||||
PhysDevExtTramp(217) PhysDevExtTermin(217)
|
||||
PhysDevExtTramp(218) PhysDevExtTermin(218)
|
||||
PhysDevExtTramp(219) PhysDevExtTermin(219)
|
||||
PhysDevExtTramp(220) PhysDevExtTermin(220)
|
||||
PhysDevExtTramp(221) PhysDevExtTermin(221)
|
||||
PhysDevExtTramp(222) PhysDevExtTermin(222)
|
||||
PhysDevExtTramp(223) PhysDevExtTermin(223)
|
||||
PhysDevExtTramp(224) PhysDevExtTermin(224)
|
||||
PhysDevExtTramp(225) PhysDevExtTermin(225)
|
||||
PhysDevExtTramp(226) PhysDevExtTermin(226)
|
||||
PhysDevExtTramp(227) PhysDevExtTermin(227)
|
||||
PhysDevExtTramp(228) PhysDevExtTermin(228)
|
||||
PhysDevExtTramp(229) PhysDevExtTermin(229)
|
||||
PhysDevExtTramp(230) PhysDevExtTermin(230)
|
||||
PhysDevExtTramp(231) PhysDevExtTermin(231)
|
||||
PhysDevExtTramp(232) PhysDevExtTermin(232)
|
||||
PhysDevExtTramp(233) PhysDevExtTermin(233)
|
||||
PhysDevExtTramp(234) PhysDevExtTermin(234)
|
||||
PhysDevExtTramp(235) PhysDevExtTermin(235)
|
||||
PhysDevExtTramp(236) PhysDevExtTermin(236)
|
||||
PhysDevExtTramp(237) PhysDevExtTermin(237)
|
||||
PhysDevExtTramp(238) PhysDevExtTermin(238)
|
||||
PhysDevExtTramp(239) PhysDevExtTermin(239)
|
||||
PhysDevExtTramp(240) PhysDevExtTermin(240)
|
||||
PhysDevExtTramp(241) PhysDevExtTermin(241)
|
||||
PhysDevExtTramp(242) PhysDevExtTermin(242)
|
||||
PhysDevExtTramp(243) PhysDevExtTermin(243)
|
||||
PhysDevExtTramp(244) PhysDevExtTermin(244)
|
||||
PhysDevExtTramp(245) PhysDevExtTermin(245)
|
||||
PhysDevExtTramp(246) PhysDevExtTermin(246)
|
||||
PhysDevExtTramp(247) PhysDevExtTermin(247)
|
||||
PhysDevExtTramp(248) PhysDevExtTermin(248)
|
||||
PhysDevExtTramp(249) PhysDevExtTermin(249)
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin0(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin1(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin2(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin3(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin4(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin5(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin6(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin7(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin8(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin9(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin10(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin11(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin12(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin13(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin14(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin15(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin16(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin17(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin18(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin19(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin20(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin21(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin22(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin23(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin24(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin25(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin26(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin27(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin28(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin29(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin30(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin31(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin32(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin33(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin34(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin35(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin36(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin37(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin38(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin39(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin40(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin41(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin42(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin43(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin44(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin45(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin46(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin47(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin48(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin49(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin50(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin51(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin52(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin53(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin54(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin55(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin56(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin57(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin58(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin59(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin60(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin61(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin62(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin63(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin64(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin65(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin66(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin67(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin68(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin69(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin70(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin71(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin72(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin73(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin74(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin75(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin76(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin77(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin78(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin79(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin80(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin81(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin82(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin83(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin84(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin85(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin86(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin87(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin88(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin89(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin90(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin91(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin92(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin93(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin94(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin95(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin96(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin97(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin98(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin99(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin100(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin101(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin102(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin103(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin104(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin105(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin106(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin107(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin108(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin109(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin110(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin111(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin112(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin113(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin114(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin115(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin116(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin117(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin118(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin119(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin120(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin121(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin122(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin123(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin124(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin125(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin126(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin127(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin128(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin129(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin130(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin131(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin132(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin133(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin134(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin135(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin136(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin137(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin138(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin139(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin140(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin141(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin142(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin143(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin144(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin145(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin146(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin147(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin148(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin149(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin150(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin151(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin152(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin153(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin154(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin155(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin156(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin157(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin158(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin159(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin160(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin161(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin162(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin163(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin164(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin165(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin166(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin167(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin168(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin169(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin170(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin171(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin172(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin173(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin174(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin175(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin176(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin177(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin178(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin179(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin180(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin181(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin182(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin183(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin184(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin185(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin186(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin187(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin188(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin189(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin190(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin191(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin192(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin193(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin194(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin195(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin196(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin197(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin198(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin199(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin200(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin201(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin202(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin203(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin204(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin205(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin206(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin207(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin208(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin209(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin210(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin211(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin212(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin213(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin214(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin215(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin216(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin217(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin218(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin219(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin220(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin221(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin222(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin223(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin224(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin225(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin226(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin227(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin228(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin229(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin230(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin231(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin232(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin233(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin234(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin235(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin236(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin237(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin238(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin239(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin240(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin241(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin242(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin243(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin244(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin245(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin246(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin247(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin248(VkPhysicalDevice);
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin249(VkPhysicalDevice);
|
||||
|
||||
|
||||
void *loader_get_phys_dev_ext_tramp(uint32_t index) {
|
||||
|
|
|
@ -122,27 +122,11 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionPropert
|
|||
}
|
||||
|
||||
loader_layer_scan(NULL, &instance_layers);
|
||||
if (strcmp(pLayerName, std_validation_str) == 0) {
|
||||
struct loader_layer_list local_list;
|
||||
memset(&local_list, 0, sizeof(local_list));
|
||||
for (uint32_t i = 0; i < sizeof(std_validation_names) / sizeof(std_validation_names[0]); i++) {
|
||||
loader_find_layer_name_add_list(NULL, std_validation_names[i], VK_LAYER_TYPE_INSTANCE_EXPLICIT, &instance_layers,
|
||||
&local_list);
|
||||
}
|
||||
for (uint32_t i = 0; i < local_list.count; i++) {
|
||||
struct loader_extension_list *ext_list = &local_list.list[i].instance_extension_list;
|
||||
loader_add_to_ext_list(NULL, &local_ext_list, ext_list->count, ext_list->list);
|
||||
}
|
||||
loader_destroy_layer_list(NULL, NULL, &local_list);
|
||||
global_ext_list = &local_ext_list;
|
||||
|
||||
} else {
|
||||
for (uint32_t i = 0; i < instance_layers.count; i++) {
|
||||
struct loader_layer_properties *props = &instance_layers.list[i];
|
||||
if (strcmp(props->info.layerName, pLayerName) == 0) {
|
||||
global_ext_list = &props->instance_extension_list;
|
||||
break;
|
||||
}
|
||||
for (uint32_t i = 0; i < instance_layers.count; i++) {
|
||||
struct loader_layer_properties *props = &instance_layers.list[i];
|
||||
if (strcmp(props->info.layerName, pLayerName) == 0) {
|
||||
global_ext_list = &props->instance_extension_list;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -243,6 +227,22 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCr
|
|||
|
||||
loader_platform_thread_once(&once_init, loader_initialize);
|
||||
|
||||
// Fail if the requested Vulkan apiVersion is > 1.0 since the loader only supports 1.0.
|
||||
// Having pCreateInfo == NULL, pCreateInfo->pApplication == NULL, or
|
||||
// pCreateInfo->pApplicationInfo->apiVersion == 0 all indicate that the application is
|
||||
// only requesting a 1.0 instance, which this loader will always support.
|
||||
uint32_t loader_major_version = 1;
|
||||
uint32_t loader_minor_version = 0;
|
||||
if (NULL != pCreateInfo && NULL != pCreateInfo->pApplicationInfo &&
|
||||
pCreateInfo->pApplicationInfo->apiVersion >= VK_MAKE_VERSION(loader_major_version, loader_minor_version + 1, 0)) {
|
||||
loader_log(ptr_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"vkCreateInstance: Called with invalid API version %d.%d. Loader only supports %d.%d",
|
||||
VK_VERSION_MAJOR(pCreateInfo->pApplicationInfo->apiVersion),
|
||||
VK_VERSION_MINOR(pCreateInfo->pApplicationInfo->apiVersion), loader_major_version, loader_minor_version);
|
||||
res = VK_ERROR_INCOMPATIBLE_DRIVER;
|
||||
goto out;
|
||||
}
|
||||
|
||||
#if (DEBUG_DISABLE_APP_ALLOCATORS == 1)
|
||||
{
|
||||
#else
|
||||
|
@ -306,15 +306,6 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCr
|
|||
}
|
||||
}
|
||||
|
||||
// Convert any meta layers to the actual layers makes a copy of layer name
|
||||
VkResult layerErr =
|
||||
loader_expand_layer_names(ptr_instance, std_validation_str, sizeof(std_validation_names) / sizeof(std_validation_names[0]),
|
||||
std_validation_names, &ici.enabledLayerCount, &ici.ppEnabledLayerNames);
|
||||
if (VK_SUCCESS != layerErr) {
|
||||
res = layerErr;
|
||||
goto out;
|
||||
}
|
||||
|
||||
// Scan/discover all ICD libraries
|
||||
memset(&ptr_instance->icd_tramp_list, 0, sizeof(ptr_instance->icd_tramp_list));
|
||||
res = loader_icd_scan(ptr_instance, &ptr_instance->icd_tramp_list);
|
||||
|
@ -332,16 +323,16 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCr
|
|||
goto out;
|
||||
}
|
||||
|
||||
ptr_instance->disp =
|
||||
loader_instance_heap_alloc(ptr_instance, sizeof(VkLayerInstanceDispatchTable), VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
|
||||
ptr_instance->disp = loader_instance_heap_alloc(ptr_instance, sizeof(struct loader_instance_dispatch_table),
|
||||
VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
|
||||
if (ptr_instance->disp == NULL) {
|
||||
loader_log(ptr_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"vkCreateInstance: Failed to allocate Instance dispatch"
|
||||
" table.");
|
||||
"vkCreateInstance: Failed to allocate Loader's full Instance dispatch table.");
|
||||
res = VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
goto out;
|
||||
}
|
||||
memcpy(ptr_instance->disp, &instance_disp, sizeof(instance_disp));
|
||||
memcpy(&ptr_instance->disp->layer_inst_disp, &instance_disp, sizeof(instance_disp));
|
||||
|
||||
ptr_instance->next = loader.instances;
|
||||
loader.instances = ptr_instance;
|
||||
|
||||
|
@ -386,9 +377,13 @@ out:
|
|||
util_FreeDebugReportCreateInfos(pAllocator, ptr_instance->tmp_dbg_create_infos, ptr_instance->tmp_callbacks);
|
||||
}
|
||||
|
||||
loader_deactivate_layers(ptr_instance, NULL, &ptr_instance->activated_layer_list);
|
||||
if (NULL != ptr_instance->expanded_activated_layer_list.list) {
|
||||
loader_deactivate_layers(ptr_instance, NULL, &ptr_instance->expanded_activated_layer_list);
|
||||
}
|
||||
if (NULL != ptr_instance->app_activated_layer_list.list) {
|
||||
loader_destroy_layer_list(ptr_instance, NULL, &ptr_instance->app_activated_layer_list);
|
||||
}
|
||||
|
||||
loader_delete_shadow_inst_layer_names(ptr_instance, pCreateInfo, &ici);
|
||||
loader_delete_layer_properties(ptr_instance, &ptr_instance->instance_layer_list);
|
||||
loader_scanned_icd_clear(ptr_instance, &ptr_instance->icd_tramp_list);
|
||||
loader_destroy_generic_list(ptr_instance, (struct loader_generic_list *)&ptr_instance->ext_list);
|
||||
|
@ -398,7 +393,6 @@ out:
|
|||
// Remove temporary debug_report callback
|
||||
util_DestroyDebugReportCallbacks(ptr_instance, pAllocator, ptr_instance->num_tmp_callbacks,
|
||||
ptr_instance->tmp_callbacks);
|
||||
loader_delete_shadow_inst_layer_names(ptr_instance, pCreateInfo, &ici);
|
||||
}
|
||||
|
||||
if (loaderLocked) {
|
||||
|
@ -438,7 +432,12 @@ LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(VkInstance instance,
|
|||
|
||||
disp->DestroyInstance(instance, pAllocator);
|
||||
|
||||
loader_deactivate_layers(ptr_instance, NULL, &ptr_instance->activated_layer_list);
|
||||
if (NULL != ptr_instance->expanded_activated_layer_list.list) {
|
||||
loader_deactivate_layers(ptr_instance, NULL, &ptr_instance->expanded_activated_layer_list);
|
||||
}
|
||||
if (NULL != ptr_instance->app_activated_layer_list.list) {
|
||||
loader_destroy_layer_list(ptr_instance, NULL, &ptr_instance->app_activated_layer_list);
|
||||
}
|
||||
|
||||
if (ptr_instance->phys_devs_tramp) {
|
||||
for (uint32_t i = 0; i < ptr_instance->phys_dev_count_tramp; i++) {
|
||||
|
@ -601,7 +600,7 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(VkPhysicalDevice phy
|
|||
}
|
||||
|
||||
// Make sure requested extensions to be enabled are supported
|
||||
res = loader_validate_device_extensions(phys_dev, &inst->activated_layer_list, &icd_exts, pCreateInfo);
|
||||
res = loader_validate_device_extensions(phys_dev, &inst->expanded_activated_layer_list, &icd_exts, pCreateInfo);
|
||||
if (res != VK_SUCCESS) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, "vkCreateDevice: Failed to validate extensions in list");
|
||||
goto out;
|
||||
|
@ -613,21 +612,47 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(VkPhysicalDevice phy
|
|||
goto out;
|
||||
}
|
||||
|
||||
// Copy the instance layer list into the device
|
||||
dev->activated_layer_list.capacity = inst->activated_layer_list.capacity;
|
||||
dev->activated_layer_list.count = inst->activated_layer_list.count;
|
||||
dev->activated_layer_list.list =
|
||||
loader_device_heap_alloc(dev, inst->activated_layer_list.capacity, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE);
|
||||
if (dev->activated_layer_list.list == NULL) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"vkCreateDevice: Failed to allocate activated layer"
|
||||
"list of size %d.",
|
||||
inst->activated_layer_list.capacity);
|
||||
res = VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
goto out;
|
||||
// Copy the application enabled instance layer list into the device
|
||||
if (NULL != inst->app_activated_layer_list.list) {
|
||||
dev->app_activated_layer_list.capacity = inst->app_activated_layer_list.capacity;
|
||||
dev->app_activated_layer_list.count = inst->app_activated_layer_list.count;
|
||||
dev->app_activated_layer_list.list =
|
||||
loader_device_heap_alloc(dev, inst->app_activated_layer_list.capacity, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE);
|
||||
if (dev->app_activated_layer_list.list == NULL) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"vkCreateDevice: Failed to allocate application activated layer list of size %d.",
|
||||
inst->app_activated_layer_list.capacity);
|
||||
res = VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
goto out;
|
||||
}
|
||||
memcpy(dev->app_activated_layer_list.list, inst->app_activated_layer_list.list,
|
||||
sizeof(*dev->app_activated_layer_list.list) * dev->app_activated_layer_list.count);
|
||||
} else {
|
||||
dev->app_activated_layer_list.capacity = 0;
|
||||
dev->app_activated_layer_list.count = 0;
|
||||
dev->app_activated_layer_list.list = NULL;
|
||||
}
|
||||
|
||||
// Copy the expanded enabled instance layer list into the device
|
||||
if (NULL != inst->expanded_activated_layer_list.list) {
|
||||
dev->expanded_activated_layer_list.capacity = inst->expanded_activated_layer_list.capacity;
|
||||
dev->expanded_activated_layer_list.count = inst->expanded_activated_layer_list.count;
|
||||
dev->expanded_activated_layer_list.list =
|
||||
loader_device_heap_alloc(dev, inst->expanded_activated_layer_list.capacity, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE);
|
||||
if (dev->expanded_activated_layer_list.list == NULL) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"vkCreateDevice: Failed to allocate expanded activated layer list of size %d.",
|
||||
inst->expanded_activated_layer_list.capacity);
|
||||
res = VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
goto out;
|
||||
}
|
||||
memcpy(dev->expanded_activated_layer_list.list, inst->expanded_activated_layer_list.list,
|
||||
sizeof(*dev->expanded_activated_layer_list.list) * dev->expanded_activated_layer_list.count);
|
||||
} else {
|
||||
dev->expanded_activated_layer_list.capacity = 0;
|
||||
dev->expanded_activated_layer_list.count = 0;
|
||||
dev->expanded_activated_layer_list.list = NULL;
|
||||
}
|
||||
memcpy(dev->activated_layer_list.list, inst->activated_layer_list.list,
|
||||
sizeof(*dev->activated_layer_list.list) * dev->activated_layer_list.count);
|
||||
|
||||
res = loader_create_device_chain(phys_dev, pCreateInfo, pAllocator, inst, dev);
|
||||
if (res != VK_SUCCESS) {
|
||||
|
@ -709,28 +734,10 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionPropertie
|
|||
struct loader_device_extension_list local_ext_list;
|
||||
memset(&local_ext_list, 0, sizeof(local_ext_list));
|
||||
if (vk_string_validate(MaxLoaderStringLength, pLayerName) == VK_STRING_ERROR_NONE) {
|
||||
if (strcmp(pLayerName, std_validation_str) == 0) {
|
||||
struct loader_layer_list local_list;
|
||||
memset(&local_list, 0, sizeof(local_list));
|
||||
for (uint32_t i = 0; i < sizeof(std_validation_names) / sizeof(std_validation_names[0]); i++) {
|
||||
loader_find_layer_name_add_list(NULL, std_validation_names[i], VK_LAYER_TYPE_INSTANCE_EXPLICIT,
|
||||
&inst->instance_layer_list, &local_list);
|
||||
}
|
||||
for (uint32_t i = 0; i < local_list.count; i++) {
|
||||
struct loader_device_extension_list *ext_list = &local_list.list[i].device_extension_list;
|
||||
for (uint32_t j = 0; j < ext_list->count; j++) {
|
||||
loader_add_to_dev_ext_list(NULL, &local_ext_list, &ext_list->list[j].props, 0, NULL);
|
||||
}
|
||||
}
|
||||
loader_destroy_layer_list(NULL, NULL, &local_list);
|
||||
dev_ext_list = &local_ext_list;
|
||||
|
||||
} else {
|
||||
for (uint32_t i = 0; i < inst->instance_layer_list.count; i++) {
|
||||
struct loader_layer_properties *props = &inst->instance_layer_list.list[i];
|
||||
if (strcmp(props->info.layerName, pLayerName) == 0) {
|
||||
dev_ext_list = &props->device_extension_list;
|
||||
}
|
||||
for (uint32_t i = 0; i < inst->instance_layer_list.count; i++) {
|
||||
struct loader_layer_properties *props = &inst->instance_layer_list.list[i];
|
||||
if (strcmp(props->info.layerName, pLayerName) == 0) {
|
||||
dev_ext_list = &props->device_extension_list;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -772,7 +779,6 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(Vk
|
|||
uint32_t copy_size;
|
||||
struct loader_physical_device_tramp *phys_dev;
|
||||
struct loader_layer_list *enabled_layers, layers_list;
|
||||
uint32_t std_val_count = sizeof(std_validation_names) / sizeof(std_validation_names[0]);
|
||||
memset(&layers_list, 0, sizeof(layers_list));
|
||||
loader_platform_thread_lock_mutex(&loader_lock);
|
||||
|
||||
|
@ -784,49 +790,13 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(Vk
|
|||
phys_dev = (struct loader_physical_device_tramp *)physicalDevice;
|
||||
const struct loader_instance *inst = phys_dev->this_instance;
|
||||
|
||||
uint32_t count = inst->activated_layer_list.count;
|
||||
if (inst->activated_layers_are_std_val) count = count - std_val_count + 1;
|
||||
if (pProperties == NULL) {
|
||||
uint32_t count = inst->app_activated_layer_list.count;
|
||||
if (count == 0 || pProperties == NULL) {
|
||||
*pPropertyCount = count;
|
||||
loader_platform_thread_unlock_mutex(&loader_lock);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
// Make sure to enumerate standard_validation if that is what was used
|
||||
// at the instance layer enablement
|
||||
if (inst->activated_layers_are_std_val) {
|
||||
enabled_layers = &layers_list;
|
||||
enabled_layers->count = count;
|
||||
enabled_layers->capacity = enabled_layers->count * sizeof(struct loader_layer_properties);
|
||||
enabled_layers->list = loader_instance_heap_alloc(inst, enabled_layers->capacity, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
|
||||
if (!enabled_layers->list) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"vkEnumerateDeviceLayerProperties: Failed to allocate enabled"
|
||||
"layer list of size %d",
|
||||
enabled_layers->capacity);
|
||||
return VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
}
|
||||
|
||||
uint32_t j = 0;
|
||||
for (uint32_t i = 0; i < inst->activated_layer_list.count; j++) {
|
||||
if (loader_find_layer_name_array(inst->activated_layer_list.list[i].info.layerName, std_val_count,
|
||||
std_validation_names)) {
|
||||
struct loader_layer_properties props;
|
||||
loader_init_std_validation_props(&props);
|
||||
VkResult err = loader_copy_layer_properties(inst, &enabled_layers->list[j], &props);
|
||||
if (err != VK_SUCCESS) {
|
||||
return err;
|
||||
}
|
||||
i += std_val_count;
|
||||
} else {
|
||||
VkResult err = loader_copy_layer_properties(inst, &enabled_layers->list[j], &inst->activated_layer_list.list[i++]);
|
||||
if (err != VK_SUCCESS) {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
enabled_layers = (struct loader_layer_list *)&inst->activated_layer_list;
|
||||
}
|
||||
enabled_layers = (struct loader_layer_list *)&inst->app_activated_layer_list;
|
||||
|
||||
copy_size = (*pPropertyCount < count) ? *pPropertyCount : count;
|
||||
for (uint32_t i = 0; i < copy_size; i++) {
|
||||
|
@ -834,9 +804,6 @@ LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(Vk
|
|||
}
|
||||
*pPropertyCount = copy_size;
|
||||
|
||||
if (inst->activated_layers_are_std_val) {
|
||||
loader_delete_layer_properties(inst, enabled_layers);
|
||||
}
|
||||
if (copy_size < count) {
|
||||
loader_platform_thread_unlock_mutex(&loader_lock);
|
||||
return VK_INCOMPLETE;
|
||||
|
|
|
@ -0,0 +1,819 @@
|
|||
/*
|
||||
* Copyright (c) 2017 The Khronos Group Inc.
|
||||
* Copyright (c) 2017 Valve Corporation
|
||||
* Copyright (c) 2017 LunarG, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Author Jon Ashburn <jon@lunarg.com>
|
||||
* Author: Lenny Komow <lenny@lunarg.com>
|
||||
*/
|
||||
|
||||
// This code is used to pass on physical device extensions through the call chain. It must do this without creating a stack frame,
|
||||
// because the actual parameters of the call are not known. Since the first parameter is known to be a VkPhysicalDevice, it can
|
||||
// unwrap the physical device, overwriting the wrapped device, and then jump to the next function in the call chain. This code
|
||||
// attempts to accomplish this by relying on tail-call optimizations, but there is no guarantee that this will work. As a result,
|
||||
// this code is only compiled on systems where an assembly alternative has not been written.
|
||||
|
||||
#include "vk_loader_platform.h"
|
||||
#include "loader.h"
|
||||
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
#pragma GCC optimize(3) // force gcc to use tail-calls
|
||||
#endif
|
||||
|
||||
// Trampoline function macro for unknown physical device extension command.
|
||||
#define PhysDevExtTramp(num) \
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp##num(VkPhysicalDevice physical_device) { \
|
||||
const struct loader_instance_dispatch_table *disp; \
|
||||
disp = loader_get_instance_dispatch(physical_device); \
|
||||
disp->phys_dev_ext[num](loader_unwrap_physical_device(physical_device)); \
|
||||
}
|
||||
|
||||
// Terminator function macro for unknown physical device extension command.
|
||||
#define PhysDevExtTermin(num) \
|
||||
VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin##num(VkPhysicalDevice physical_device) { \
|
||||
struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physical_device; \
|
||||
struct loader_icd_term *icd_term = phys_dev_term->this_icd_term; \
|
||||
struct loader_instance *inst = (struct loader_instance *)icd_term->this_instance; \
|
||||
if (NULL == icd_term->phys_dev_ext[num]) { \
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, "Extension %s not supported for this physical device", \
|
||||
inst->phys_dev_ext_disp_hash[num].func_name); \
|
||||
} \
|
||||
icd_term->phys_dev_ext[num](phys_dev_term->phys_dev); \
|
||||
}
|
||||
|
||||
// Trampoline function macro for unknown physical device extension command.
|
||||
#define DevExtTramp(num) \
|
||||
VKAPI_ATTR void VKAPI_CALL vkdev_ext##num(VkDevice device) { \
|
||||
const struct loader_dev_dispatch_table *disp; \
|
||||
disp = loader_get_dev_dispatch(device); \
|
||||
disp->ext_dispatch.dev_ext[num](device); \
|
||||
}
|
||||
|
||||
|
||||
// Instantiations of the trampoline
|
||||
PhysDevExtTramp(0)
|
||||
PhysDevExtTramp(1)
|
||||
PhysDevExtTramp(2)
|
||||
PhysDevExtTramp(3)
|
||||
PhysDevExtTramp(4)
|
||||
PhysDevExtTramp(5)
|
||||
PhysDevExtTramp(6)
|
||||
PhysDevExtTramp(7)
|
||||
PhysDevExtTramp(8)
|
||||
PhysDevExtTramp(9)
|
||||
PhysDevExtTramp(10)
|
||||
PhysDevExtTramp(11)
|
||||
PhysDevExtTramp(12)
|
||||
PhysDevExtTramp(13)
|
||||
PhysDevExtTramp(14)
|
||||
PhysDevExtTramp(15)
|
||||
PhysDevExtTramp(16)
|
||||
PhysDevExtTramp(17)
|
||||
PhysDevExtTramp(18)
|
||||
PhysDevExtTramp(19)
|
||||
PhysDevExtTramp(20)
|
||||
PhysDevExtTramp(21)
|
||||
PhysDevExtTramp(22)
|
||||
PhysDevExtTramp(23)
|
||||
PhysDevExtTramp(24)
|
||||
PhysDevExtTramp(25)
|
||||
PhysDevExtTramp(26)
|
||||
PhysDevExtTramp(27)
|
||||
PhysDevExtTramp(28)
|
||||
PhysDevExtTramp(29)
|
||||
PhysDevExtTramp(30)
|
||||
PhysDevExtTramp(31)
|
||||
PhysDevExtTramp(32)
|
||||
PhysDevExtTramp(33)
|
||||
PhysDevExtTramp(34)
|
||||
PhysDevExtTramp(35)
|
||||
PhysDevExtTramp(36)
|
||||
PhysDevExtTramp(37)
|
||||
PhysDevExtTramp(38)
|
||||
PhysDevExtTramp(39)
|
||||
PhysDevExtTramp(40)
|
||||
PhysDevExtTramp(41)
|
||||
PhysDevExtTramp(42)
|
||||
PhysDevExtTramp(43)
|
||||
PhysDevExtTramp(44)
|
||||
PhysDevExtTramp(45)
|
||||
PhysDevExtTramp(46)
|
||||
PhysDevExtTramp(47)
|
||||
PhysDevExtTramp(48)
|
||||
PhysDevExtTramp(49)
|
||||
PhysDevExtTramp(50)
|
||||
PhysDevExtTramp(51)
|
||||
PhysDevExtTramp(52)
|
||||
PhysDevExtTramp(53)
|
||||
PhysDevExtTramp(54)
|
||||
PhysDevExtTramp(55)
|
||||
PhysDevExtTramp(56)
|
||||
PhysDevExtTramp(57)
|
||||
PhysDevExtTramp(58)
|
||||
PhysDevExtTramp(59)
|
||||
PhysDevExtTramp(60)
|
||||
PhysDevExtTramp(61)
|
||||
PhysDevExtTramp(62)
|
||||
PhysDevExtTramp(63)
|
||||
PhysDevExtTramp(64)
|
||||
PhysDevExtTramp(65)
|
||||
PhysDevExtTramp(66)
|
||||
PhysDevExtTramp(67)
|
||||
PhysDevExtTramp(68)
|
||||
PhysDevExtTramp(69)
|
||||
PhysDevExtTramp(70)
|
||||
PhysDevExtTramp(71)
|
||||
PhysDevExtTramp(72)
|
||||
PhysDevExtTramp(73)
|
||||
PhysDevExtTramp(74)
|
||||
PhysDevExtTramp(75)
|
||||
PhysDevExtTramp(76)
|
||||
PhysDevExtTramp(77)
|
||||
PhysDevExtTramp(78)
|
||||
PhysDevExtTramp(79)
|
||||
PhysDevExtTramp(80)
|
||||
PhysDevExtTramp(81)
|
||||
PhysDevExtTramp(82)
|
||||
PhysDevExtTramp(83)
|
||||
PhysDevExtTramp(84)
|
||||
PhysDevExtTramp(85)
|
||||
PhysDevExtTramp(86)
|
||||
PhysDevExtTramp(87)
|
||||
PhysDevExtTramp(88)
|
||||
PhysDevExtTramp(89)
|
||||
PhysDevExtTramp(90)
|
||||
PhysDevExtTramp(91)
|
||||
PhysDevExtTramp(92)
|
||||
PhysDevExtTramp(93)
|
||||
PhysDevExtTramp(94)
|
||||
PhysDevExtTramp(95)
|
||||
PhysDevExtTramp(96)
|
||||
PhysDevExtTramp(97)
|
||||
PhysDevExtTramp(98)
|
||||
PhysDevExtTramp(99)
|
||||
PhysDevExtTramp(100)
|
||||
PhysDevExtTramp(101)
|
||||
PhysDevExtTramp(102)
|
||||
PhysDevExtTramp(103)
|
||||
PhysDevExtTramp(104)
|
||||
PhysDevExtTramp(105)
|
||||
PhysDevExtTramp(106)
|
||||
PhysDevExtTramp(107)
|
||||
PhysDevExtTramp(108)
|
||||
PhysDevExtTramp(109)
|
||||
PhysDevExtTramp(110)
|
||||
PhysDevExtTramp(111)
|
||||
PhysDevExtTramp(112)
|
||||
PhysDevExtTramp(113)
|
||||
PhysDevExtTramp(114)
|
||||
PhysDevExtTramp(115)
|
||||
PhysDevExtTramp(116)
|
||||
PhysDevExtTramp(117)
|
||||
PhysDevExtTramp(118)
|
||||
PhysDevExtTramp(119)
|
||||
PhysDevExtTramp(120)
|
||||
PhysDevExtTramp(121)
|
||||
PhysDevExtTramp(122)
|
||||
PhysDevExtTramp(123)
|
||||
PhysDevExtTramp(124)
|
||||
PhysDevExtTramp(125)
|
||||
PhysDevExtTramp(126)
|
||||
PhysDevExtTramp(127)
|
||||
PhysDevExtTramp(128)
|
||||
PhysDevExtTramp(129)
|
||||
PhysDevExtTramp(130)
|
||||
PhysDevExtTramp(131)
|
||||
PhysDevExtTramp(132)
|
||||
PhysDevExtTramp(133)
|
||||
PhysDevExtTramp(134)
|
||||
PhysDevExtTramp(135)
|
||||
PhysDevExtTramp(136)
|
||||
PhysDevExtTramp(137)
|
||||
PhysDevExtTramp(138)
|
||||
PhysDevExtTramp(139)
|
||||
PhysDevExtTramp(140)
|
||||
PhysDevExtTramp(141)
|
||||
PhysDevExtTramp(142)
|
||||
PhysDevExtTramp(143)
|
||||
PhysDevExtTramp(144)
|
||||
PhysDevExtTramp(145)
|
||||
PhysDevExtTramp(146)
|
||||
PhysDevExtTramp(147)
|
||||
PhysDevExtTramp(148)
|
||||
PhysDevExtTramp(149)
|
||||
PhysDevExtTramp(150)
|
||||
PhysDevExtTramp(151)
|
||||
PhysDevExtTramp(152)
|
||||
PhysDevExtTramp(153)
|
||||
PhysDevExtTramp(154)
|
||||
PhysDevExtTramp(155)
|
||||
PhysDevExtTramp(156)
|
||||
PhysDevExtTramp(157)
|
||||
PhysDevExtTramp(158)
|
||||
PhysDevExtTramp(159)
|
||||
PhysDevExtTramp(160)
|
||||
PhysDevExtTramp(161)
|
||||
PhysDevExtTramp(162)
|
||||
PhysDevExtTramp(163)
|
||||
PhysDevExtTramp(164)
|
||||
PhysDevExtTramp(165)
|
||||
PhysDevExtTramp(166)
|
||||
PhysDevExtTramp(167)
|
||||
PhysDevExtTramp(168)
|
||||
PhysDevExtTramp(169)
|
||||
PhysDevExtTramp(170)
|
||||
PhysDevExtTramp(171)
|
||||
PhysDevExtTramp(172)
|
||||
PhysDevExtTramp(173)
|
||||
PhysDevExtTramp(174)
|
||||
PhysDevExtTramp(175)
|
||||
PhysDevExtTramp(176)
|
||||
PhysDevExtTramp(177)
|
||||
PhysDevExtTramp(178)
|
||||
PhysDevExtTramp(179)
|
||||
PhysDevExtTramp(180)
|
||||
PhysDevExtTramp(181)
|
||||
PhysDevExtTramp(182)
|
||||
PhysDevExtTramp(183)
|
||||
PhysDevExtTramp(184)
|
||||
PhysDevExtTramp(185)
|
||||
PhysDevExtTramp(186)
|
||||
PhysDevExtTramp(187)
|
||||
PhysDevExtTramp(188)
|
||||
PhysDevExtTramp(189)
|
||||
PhysDevExtTramp(190)
|
||||
PhysDevExtTramp(191)
|
||||
PhysDevExtTramp(192)
|
||||
PhysDevExtTramp(193)
|
||||
PhysDevExtTramp(194)
|
||||
PhysDevExtTramp(195)
|
||||
PhysDevExtTramp(196)
|
||||
PhysDevExtTramp(197)
|
||||
PhysDevExtTramp(198)
|
||||
PhysDevExtTramp(199)
|
||||
PhysDevExtTramp(200)
|
||||
PhysDevExtTramp(201)
|
||||
PhysDevExtTramp(202)
|
||||
PhysDevExtTramp(203)
|
||||
PhysDevExtTramp(204)
|
||||
PhysDevExtTramp(205)
|
||||
PhysDevExtTramp(206)
|
||||
PhysDevExtTramp(207)
|
||||
PhysDevExtTramp(208)
|
||||
PhysDevExtTramp(209)
|
||||
PhysDevExtTramp(210)
|
||||
PhysDevExtTramp(211)
|
||||
PhysDevExtTramp(212)
|
||||
PhysDevExtTramp(213)
|
||||
PhysDevExtTramp(214)
|
||||
PhysDevExtTramp(215)
|
||||
PhysDevExtTramp(216)
|
||||
PhysDevExtTramp(217)
|
||||
PhysDevExtTramp(218)
|
||||
PhysDevExtTramp(219)
|
||||
PhysDevExtTramp(220)
|
||||
PhysDevExtTramp(221)
|
||||
PhysDevExtTramp(222)
|
||||
PhysDevExtTramp(223)
|
||||
PhysDevExtTramp(224)
|
||||
PhysDevExtTramp(225)
|
||||
PhysDevExtTramp(226)
|
||||
PhysDevExtTramp(227)
|
||||
PhysDevExtTramp(228)
|
||||
PhysDevExtTramp(229)
|
||||
PhysDevExtTramp(230)
|
||||
PhysDevExtTramp(231)
|
||||
PhysDevExtTramp(232)
|
||||
PhysDevExtTramp(233)
|
||||
PhysDevExtTramp(234)
|
||||
PhysDevExtTramp(235)
|
||||
PhysDevExtTramp(236)
|
||||
PhysDevExtTramp(237)
|
||||
PhysDevExtTramp(238)
|
||||
PhysDevExtTramp(239)
|
||||
PhysDevExtTramp(240)
|
||||
PhysDevExtTramp(241)
|
||||
PhysDevExtTramp(242)
|
||||
PhysDevExtTramp(243)
|
||||
PhysDevExtTramp(244)
|
||||
PhysDevExtTramp(245)
|
||||
PhysDevExtTramp(246)
|
||||
PhysDevExtTramp(247)
|
||||
PhysDevExtTramp(248)
|
||||
PhysDevExtTramp(249)
|
||||
|
||||
// Instantiations of the terminator
|
||||
PhysDevExtTermin(0)
|
||||
PhysDevExtTermin(1)
|
||||
PhysDevExtTermin(2)
|
||||
PhysDevExtTermin(3)
|
||||
PhysDevExtTermin(4)
|
||||
PhysDevExtTermin(5)
|
||||
PhysDevExtTermin(6)
|
||||
PhysDevExtTermin(7)
|
||||
PhysDevExtTermin(8)
|
||||
PhysDevExtTermin(9)
|
||||
PhysDevExtTermin(10)
|
||||
PhysDevExtTermin(11)
|
||||
PhysDevExtTermin(12)
|
||||
PhysDevExtTermin(13)
|
||||
PhysDevExtTermin(14)
|
||||
PhysDevExtTermin(15)
|
||||
PhysDevExtTermin(16)
|
||||
PhysDevExtTermin(17)
|
||||
PhysDevExtTermin(18)
|
||||
PhysDevExtTermin(19)
|
||||
PhysDevExtTermin(20)
|
||||
PhysDevExtTermin(21)
|
||||
PhysDevExtTermin(22)
|
||||
PhysDevExtTermin(23)
|
||||
PhysDevExtTermin(24)
|
||||
PhysDevExtTermin(25)
|
||||
PhysDevExtTermin(26)
|
||||
PhysDevExtTermin(27)
|
||||
PhysDevExtTermin(28)
|
||||
PhysDevExtTermin(29)
|
||||
PhysDevExtTermin(30)
|
||||
PhysDevExtTermin(31)
|
||||
PhysDevExtTermin(32)
|
||||
PhysDevExtTermin(33)
|
||||
PhysDevExtTermin(34)
|
||||
PhysDevExtTermin(35)
|
||||
PhysDevExtTermin(36)
|
||||
PhysDevExtTermin(37)
|
||||
PhysDevExtTermin(38)
|
||||
PhysDevExtTermin(39)
|
||||
PhysDevExtTermin(40)
|
||||
PhysDevExtTermin(41)
|
||||
PhysDevExtTermin(42)
|
||||
PhysDevExtTermin(43)
|
||||
PhysDevExtTermin(44)
|
||||
PhysDevExtTermin(45)
|
||||
PhysDevExtTermin(46)
|
||||
PhysDevExtTermin(47)
|
||||
PhysDevExtTermin(48)
|
||||
PhysDevExtTermin(49)
|
||||
PhysDevExtTermin(50)
|
||||
PhysDevExtTermin(51)
|
||||
PhysDevExtTermin(52)
|
||||
PhysDevExtTermin(53)
|
||||
PhysDevExtTermin(54)
|
||||
PhysDevExtTermin(55)
|
||||
PhysDevExtTermin(56)
|
||||
PhysDevExtTermin(57)
|
||||
PhysDevExtTermin(58)
|
||||
PhysDevExtTermin(59)
|
||||
PhysDevExtTermin(60)
|
||||
PhysDevExtTermin(61)
|
||||
PhysDevExtTermin(62)
|
||||
PhysDevExtTermin(63)
|
||||
PhysDevExtTermin(64)
|
||||
PhysDevExtTermin(65)
|
||||
PhysDevExtTermin(66)
|
||||
PhysDevExtTermin(67)
|
||||
PhysDevExtTermin(68)
|
||||
PhysDevExtTermin(69)
|
||||
PhysDevExtTermin(70)
|
||||
PhysDevExtTermin(71)
|
||||
PhysDevExtTermin(72)
|
||||
PhysDevExtTermin(73)
|
||||
PhysDevExtTermin(74)
|
||||
PhysDevExtTermin(75)
|
||||
PhysDevExtTermin(76)
|
||||
PhysDevExtTermin(77)
|
||||
PhysDevExtTermin(78)
|
||||
PhysDevExtTermin(79)
|
||||
PhysDevExtTermin(80)
|
||||
PhysDevExtTermin(81)
|
||||
PhysDevExtTermin(82)
|
||||
PhysDevExtTermin(83)
|
||||
PhysDevExtTermin(84)
|
||||
PhysDevExtTermin(85)
|
||||
PhysDevExtTermin(86)
|
||||
PhysDevExtTermin(87)
|
||||
PhysDevExtTermin(88)
|
||||
PhysDevExtTermin(89)
|
||||
PhysDevExtTermin(90)
|
||||
PhysDevExtTermin(91)
|
||||
PhysDevExtTermin(92)
|
||||
PhysDevExtTermin(93)
|
||||
PhysDevExtTermin(94)
|
||||
PhysDevExtTermin(95)
|
||||
PhysDevExtTermin(96)
|
||||
PhysDevExtTermin(97)
|
||||
PhysDevExtTermin(98)
|
||||
PhysDevExtTermin(99)
|
||||
PhysDevExtTermin(100)
|
||||
PhysDevExtTermin(101)
|
||||
PhysDevExtTermin(102)
|
||||
PhysDevExtTermin(103)
|
||||
PhysDevExtTermin(104)
|
||||
PhysDevExtTermin(105)
|
||||
PhysDevExtTermin(106)
|
||||
PhysDevExtTermin(107)
|
||||
PhysDevExtTermin(108)
|
||||
PhysDevExtTermin(109)
|
||||
PhysDevExtTermin(110)
|
||||
PhysDevExtTermin(111)
|
||||
PhysDevExtTermin(112)
|
||||
PhysDevExtTermin(113)
|
||||
PhysDevExtTermin(114)
|
||||
PhysDevExtTermin(115)
|
||||
PhysDevExtTermin(116)
|
||||
PhysDevExtTermin(117)
|
||||
PhysDevExtTermin(118)
|
||||
PhysDevExtTermin(119)
|
||||
PhysDevExtTermin(120)
|
||||
PhysDevExtTermin(121)
|
||||
PhysDevExtTermin(122)
|
||||
PhysDevExtTermin(123)
|
||||
PhysDevExtTermin(124)
|
||||
PhysDevExtTermin(125)
|
||||
PhysDevExtTermin(126)
|
||||
PhysDevExtTermin(127)
|
||||
PhysDevExtTermin(128)
|
||||
PhysDevExtTermin(129)
|
||||
PhysDevExtTermin(130)
|
||||
PhysDevExtTermin(131)
|
||||
PhysDevExtTermin(132)
|
||||
PhysDevExtTermin(133)
|
||||
PhysDevExtTermin(134)
|
||||
PhysDevExtTermin(135)
|
||||
PhysDevExtTermin(136)
|
||||
PhysDevExtTermin(137)
|
||||
PhysDevExtTermin(138)
|
||||
PhysDevExtTermin(139)
|
||||
PhysDevExtTermin(140)
|
||||
PhysDevExtTermin(141)
|
||||
PhysDevExtTermin(142)
|
||||
PhysDevExtTermin(143)
|
||||
PhysDevExtTermin(144)
|
||||
PhysDevExtTermin(145)
|
||||
PhysDevExtTermin(146)
|
||||
PhysDevExtTermin(147)
|
||||
PhysDevExtTermin(148)
|
||||
PhysDevExtTermin(149)
|
||||
PhysDevExtTermin(150)
|
||||
PhysDevExtTermin(151)
|
||||
PhysDevExtTermin(152)
|
||||
PhysDevExtTermin(153)
|
||||
PhysDevExtTermin(154)
|
||||
PhysDevExtTermin(155)
|
||||
PhysDevExtTermin(156)
|
||||
PhysDevExtTermin(157)
|
||||
PhysDevExtTermin(158)
|
||||
PhysDevExtTermin(159)
|
||||
PhysDevExtTermin(160)
|
||||
PhysDevExtTermin(161)
|
||||
PhysDevExtTermin(162)
|
||||
PhysDevExtTermin(163)
|
||||
PhysDevExtTermin(164)
|
||||
PhysDevExtTermin(165)
|
||||
PhysDevExtTermin(166)
|
||||
PhysDevExtTermin(167)
|
||||
PhysDevExtTermin(168)
|
||||
PhysDevExtTermin(169)
|
||||
PhysDevExtTermin(170)
|
||||
PhysDevExtTermin(171)
|
||||
PhysDevExtTermin(172)
|
||||
PhysDevExtTermin(173)
|
||||
PhysDevExtTermin(174)
|
||||
PhysDevExtTermin(175)
|
||||
PhysDevExtTermin(176)
|
||||
PhysDevExtTermin(177)
|
||||
PhysDevExtTermin(178)
|
||||
PhysDevExtTermin(179)
|
||||
PhysDevExtTermin(180)
|
||||
PhysDevExtTermin(181)
|
||||
PhysDevExtTermin(182)
|
||||
PhysDevExtTermin(183)
|
||||
PhysDevExtTermin(184)
|
||||
PhysDevExtTermin(185)
|
||||
PhysDevExtTermin(186)
|
||||
PhysDevExtTermin(187)
|
||||
PhysDevExtTermin(188)
|
||||
PhysDevExtTermin(189)
|
||||
PhysDevExtTermin(190)
|
||||
PhysDevExtTermin(191)
|
||||
PhysDevExtTermin(192)
|
||||
PhysDevExtTermin(193)
|
||||
PhysDevExtTermin(194)
|
||||
PhysDevExtTermin(195)
|
||||
PhysDevExtTermin(196)
|
||||
PhysDevExtTermin(197)
|
||||
PhysDevExtTermin(198)
|
||||
PhysDevExtTermin(199)
|
||||
PhysDevExtTermin(200)
|
||||
PhysDevExtTermin(201)
|
||||
PhysDevExtTermin(202)
|
||||
PhysDevExtTermin(203)
|
||||
PhysDevExtTermin(204)
|
||||
PhysDevExtTermin(205)
|
||||
PhysDevExtTermin(206)
|
||||
PhysDevExtTermin(207)
|
||||
PhysDevExtTermin(208)
|
||||
PhysDevExtTermin(209)
|
||||
PhysDevExtTermin(210)
|
||||
PhysDevExtTermin(211)
|
||||
PhysDevExtTermin(212)
|
||||
PhysDevExtTermin(213)
|
||||
PhysDevExtTermin(214)
|
||||
PhysDevExtTermin(215)
|
||||
PhysDevExtTermin(216)
|
||||
PhysDevExtTermin(217)
|
||||
PhysDevExtTermin(218)
|
||||
PhysDevExtTermin(219)
|
||||
PhysDevExtTermin(220)
|
||||
PhysDevExtTermin(221)
|
||||
PhysDevExtTermin(222)
|
||||
PhysDevExtTermin(223)
|
||||
PhysDevExtTermin(224)
|
||||
PhysDevExtTermin(225)
|
||||
PhysDevExtTermin(226)
|
||||
PhysDevExtTermin(227)
|
||||
PhysDevExtTermin(228)
|
||||
PhysDevExtTermin(229)
|
||||
PhysDevExtTermin(230)
|
||||
PhysDevExtTermin(231)
|
||||
PhysDevExtTermin(232)
|
||||
PhysDevExtTermin(233)
|
||||
PhysDevExtTermin(234)
|
||||
PhysDevExtTermin(235)
|
||||
PhysDevExtTermin(236)
|
||||
PhysDevExtTermin(237)
|
||||
PhysDevExtTermin(238)
|
||||
PhysDevExtTermin(239)
|
||||
PhysDevExtTermin(240)
|
||||
PhysDevExtTermin(241)
|
||||
PhysDevExtTermin(242)
|
||||
PhysDevExtTermin(243)
|
||||
PhysDevExtTermin(244)
|
||||
PhysDevExtTermin(245)
|
||||
PhysDevExtTermin(246)
|
||||
PhysDevExtTermin(247)
|
||||
PhysDevExtTermin(248)
|
||||
PhysDevExtTermin(249)
|
||||
|
||||
// Instantiations of the device trampoline
|
||||
DevExtTramp(0)
|
||||
DevExtTramp(1)
|
||||
DevExtTramp(2)
|
||||
DevExtTramp(3)
|
||||
DevExtTramp(4)
|
||||
DevExtTramp(5)
|
||||
DevExtTramp(6)
|
||||
DevExtTramp(7)
|
||||
DevExtTramp(8)
|
||||
DevExtTramp(9)
|
||||
DevExtTramp(10)
|
||||
DevExtTramp(11)
|
||||
DevExtTramp(12)
|
||||
DevExtTramp(13)
|
||||
DevExtTramp(14)
|
||||
DevExtTramp(15)
|
||||
DevExtTramp(16)
|
||||
DevExtTramp(17)
|
||||
DevExtTramp(18)
|
||||
DevExtTramp(19)
|
||||
DevExtTramp(20)
|
||||
DevExtTramp(21)
|
||||
DevExtTramp(22)
|
||||
DevExtTramp(23)
|
||||
DevExtTramp(24)
|
||||
DevExtTramp(25)
|
||||
DevExtTramp(26)
|
||||
DevExtTramp(27)
|
||||
DevExtTramp(28)
|
||||
DevExtTramp(29)
|
||||
DevExtTramp(30)
|
||||
DevExtTramp(31)
|
||||
DevExtTramp(32)
|
||||
DevExtTramp(33)
|
||||
DevExtTramp(34)
|
||||
DevExtTramp(35)
|
||||
DevExtTramp(36)
|
||||
DevExtTramp(37)
|
||||
DevExtTramp(38)
|
||||
DevExtTramp(39)
|
||||
DevExtTramp(40)
|
||||
DevExtTramp(41)
|
||||
DevExtTramp(42)
|
||||
DevExtTramp(43)
|
||||
DevExtTramp(44)
|
||||
DevExtTramp(45)
|
||||
DevExtTramp(46)
|
||||
DevExtTramp(47)
|
||||
DevExtTramp(48)
|
||||
DevExtTramp(49)
|
||||
DevExtTramp(50)
|
||||
DevExtTramp(51)
|
||||
DevExtTramp(52)
|
||||
DevExtTramp(53)
|
||||
DevExtTramp(54)
|
||||
DevExtTramp(55)
|
||||
DevExtTramp(56)
|
||||
DevExtTramp(57)
|
||||
DevExtTramp(58)
|
||||
DevExtTramp(59)
|
||||
DevExtTramp(60)
|
||||
DevExtTramp(61)
|
||||
DevExtTramp(62)
|
||||
DevExtTramp(63)
|
||||
DevExtTramp(64)
|
||||
DevExtTramp(65)
|
||||
DevExtTramp(66)
|
||||
DevExtTramp(67)
|
||||
DevExtTramp(68)
|
||||
DevExtTramp(69)
|
||||
DevExtTramp(70)
|
||||
DevExtTramp(71)
|
||||
DevExtTramp(72)
|
||||
DevExtTramp(73)
|
||||
DevExtTramp(74)
|
||||
DevExtTramp(75)
|
||||
DevExtTramp(76)
|
||||
DevExtTramp(77)
|
||||
DevExtTramp(78)
|
||||
DevExtTramp(79)
|
||||
DevExtTramp(80)
|
||||
DevExtTramp(81)
|
||||
DevExtTramp(82)
|
||||
DevExtTramp(83)
|
||||
DevExtTramp(84)
|
||||
DevExtTramp(85)
|
||||
DevExtTramp(86)
|
||||
DevExtTramp(87)
|
||||
DevExtTramp(88)
|
||||
DevExtTramp(89)
|
||||
DevExtTramp(90)
|
||||
DevExtTramp(91)
|
||||
DevExtTramp(92)
|
||||
DevExtTramp(93)
|
||||
DevExtTramp(94)
|
||||
DevExtTramp(95)
|
||||
DevExtTramp(96)
|
||||
DevExtTramp(97)
|
||||
DevExtTramp(98)
|
||||
DevExtTramp(99)
|
||||
DevExtTramp(100)
|
||||
DevExtTramp(101)
|
||||
DevExtTramp(102)
|
||||
DevExtTramp(103)
|
||||
DevExtTramp(104)
|
||||
DevExtTramp(105)
|
||||
DevExtTramp(106)
|
||||
DevExtTramp(107)
|
||||
DevExtTramp(108)
|
||||
DevExtTramp(109)
|
||||
DevExtTramp(110)
|
||||
DevExtTramp(111)
|
||||
DevExtTramp(112)
|
||||
DevExtTramp(113)
|
||||
DevExtTramp(114)
|
||||
DevExtTramp(115)
|
||||
DevExtTramp(116)
|
||||
DevExtTramp(117)
|
||||
DevExtTramp(118)
|
||||
DevExtTramp(119)
|
||||
DevExtTramp(120)
|
||||
DevExtTramp(121)
|
||||
DevExtTramp(122)
|
||||
DevExtTramp(123)
|
||||
DevExtTramp(124)
|
||||
DevExtTramp(125)
|
||||
DevExtTramp(126)
|
||||
DevExtTramp(127)
|
||||
DevExtTramp(128)
|
||||
DevExtTramp(129)
|
||||
DevExtTramp(130)
|
||||
DevExtTramp(131)
|
||||
DevExtTramp(132)
|
||||
DevExtTramp(133)
|
||||
DevExtTramp(134)
|
||||
DevExtTramp(135)
|
||||
DevExtTramp(136)
|
||||
DevExtTramp(137)
|
||||
DevExtTramp(138)
|
||||
DevExtTramp(139)
|
||||
DevExtTramp(140)
|
||||
DevExtTramp(141)
|
||||
DevExtTramp(142)
|
||||
DevExtTramp(143)
|
||||
DevExtTramp(144)
|
||||
DevExtTramp(145)
|
||||
DevExtTramp(146)
|
||||
DevExtTramp(147)
|
||||
DevExtTramp(148)
|
||||
DevExtTramp(149)
|
||||
DevExtTramp(150)
|
||||
DevExtTramp(151)
|
||||
DevExtTramp(152)
|
||||
DevExtTramp(153)
|
||||
DevExtTramp(154)
|
||||
DevExtTramp(155)
|
||||
DevExtTramp(156)
|
||||
DevExtTramp(157)
|
||||
DevExtTramp(158)
|
||||
DevExtTramp(159)
|
||||
DevExtTramp(160)
|
||||
DevExtTramp(161)
|
||||
DevExtTramp(162)
|
||||
DevExtTramp(163)
|
||||
DevExtTramp(164)
|
||||
DevExtTramp(165)
|
||||
DevExtTramp(166)
|
||||
DevExtTramp(167)
|
||||
DevExtTramp(168)
|
||||
DevExtTramp(169)
|
||||
DevExtTramp(170)
|
||||
DevExtTramp(171)
|
||||
DevExtTramp(172)
|
||||
DevExtTramp(173)
|
||||
DevExtTramp(174)
|
||||
DevExtTramp(175)
|
||||
DevExtTramp(176)
|
||||
DevExtTramp(177)
|
||||
DevExtTramp(178)
|
||||
DevExtTramp(179)
|
||||
DevExtTramp(180)
|
||||
DevExtTramp(181)
|
||||
DevExtTramp(182)
|
||||
DevExtTramp(183)
|
||||
DevExtTramp(184)
|
||||
DevExtTramp(185)
|
||||
DevExtTramp(186)
|
||||
DevExtTramp(187)
|
||||
DevExtTramp(188)
|
||||
DevExtTramp(189)
|
||||
DevExtTramp(190)
|
||||
DevExtTramp(191)
|
||||
DevExtTramp(192)
|
||||
DevExtTramp(193)
|
||||
DevExtTramp(194)
|
||||
DevExtTramp(195)
|
||||
DevExtTramp(196)
|
||||
DevExtTramp(197)
|
||||
DevExtTramp(198)
|
||||
DevExtTramp(199)
|
||||
DevExtTramp(200)
|
||||
DevExtTramp(201)
|
||||
DevExtTramp(202)
|
||||
DevExtTramp(203)
|
||||
DevExtTramp(204)
|
||||
DevExtTramp(205)
|
||||
DevExtTramp(206)
|
||||
DevExtTramp(207)
|
||||
DevExtTramp(208)
|
||||
DevExtTramp(209)
|
||||
DevExtTramp(210)
|
||||
DevExtTramp(211)
|
||||
DevExtTramp(212)
|
||||
DevExtTramp(213)
|
||||
DevExtTramp(214)
|
||||
DevExtTramp(215)
|
||||
DevExtTramp(216)
|
||||
DevExtTramp(217)
|
||||
DevExtTramp(218)
|
||||
DevExtTramp(219)
|
||||
DevExtTramp(220)
|
||||
DevExtTramp(221)
|
||||
DevExtTramp(222)
|
||||
DevExtTramp(223)
|
||||
DevExtTramp(224)
|
||||
DevExtTramp(225)
|
||||
DevExtTramp(226)
|
||||
DevExtTramp(227)
|
||||
DevExtTramp(228)
|
||||
DevExtTramp(229)
|
||||
DevExtTramp(230)
|
||||
DevExtTramp(231)
|
||||
DevExtTramp(232)
|
||||
DevExtTramp(233)
|
||||
DevExtTramp(234)
|
||||
DevExtTramp(235)
|
||||
DevExtTramp(236)
|
||||
DevExtTramp(237)
|
||||
DevExtTramp(238)
|
||||
DevExtTramp(239)
|
||||
DevExtTramp(240)
|
||||
DevExtTramp(241)
|
||||
DevExtTramp(242)
|
||||
DevExtTramp(243)
|
||||
DevExtTramp(244)
|
||||
DevExtTramp(245)
|
||||
DevExtTramp(246)
|
||||
DevExtTramp(247)
|
||||
DevExtTramp(248)
|
||||
DevExtTramp(249)
|
File diff suppressed because it is too large
Load Diff
|
@ -249,6 +249,19 @@ struct loader_icd_term_dispatch {
|
|||
PFN_vkGetPhysicalDeviceMemoryProperties2KHR GetPhysicalDeviceMemoryProperties2KHR;
|
||||
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR GetPhysicalDeviceSparseImageFormatProperties2KHR;
|
||||
|
||||
// ---- VK_KHR_external_memory_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR GetPhysicalDeviceExternalBufferPropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_external_semaphore_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR GetPhysicalDeviceExternalSemaphorePropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_external_fence_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR GetPhysicalDeviceExternalFencePropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR;
|
||||
PFN_vkGetPhysicalDeviceSurfaceFormats2KHR GetPhysicalDeviceSurfaceFormats2KHR;
|
||||
|
||||
// ---- VK_EXT_debug_report extension commands
|
||||
PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
|
||||
PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
|
||||
|
@ -273,12 +286,6 @@ struct loader_icd_term_dispatch {
|
|||
// ---- VK_KHX_device_group_creation extension commands
|
||||
PFN_vkEnumeratePhysicalDeviceGroupsKHX EnumeratePhysicalDeviceGroupsKHX;
|
||||
|
||||
// ---- VK_KHX_external_memory_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX GetPhysicalDeviceExternalBufferPropertiesKHX;
|
||||
|
||||
// ---- VK_KHX_external_semaphore_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX GetPhysicalDeviceExternalSemaphorePropertiesKHX;
|
||||
|
||||
// ---- VK_NVX_device_generated_commands extension commands
|
||||
PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX GetPhysicalDeviceGeneratedCommandsPropertiesNVX;
|
||||
|
||||
|
@ -310,12 +317,14 @@ struct loader_icd_term_dispatch {
|
|||
union loader_instance_extension_enables {
|
||||
struct {
|
||||
uint8_t khr_get_physical_device_properties2 : 1;
|
||||
uint8_t khr_external_memory_capabilities : 1;
|
||||
uint8_t khr_external_semaphore_capabilities : 1;
|
||||
uint8_t khr_external_fence_capabilities : 1;
|
||||
uint8_t khr_get_surface_capabilities2 : 1;
|
||||
uint8_t ext_debug_report : 1;
|
||||
uint8_t nv_external_memory_capabilities : 1;
|
||||
uint8_t nn_vi_surface : 1;
|
||||
uint8_t khx_device_group_creation : 1;
|
||||
uint8_t khx_external_memory_capabilities : 1;
|
||||
uint8_t khx_external_semaphore_capabilities : 1;
|
||||
uint8_t ext_direct_mode_display : 1;
|
||||
uint8_t ext_acquire_xlib_display : 1;
|
||||
uint8_t ext_display_surface_counter : 1;
|
||||
|
|
|
@ -98,6 +98,10 @@ static inline char *loader_platform_dirname(char *path) { return dirname(path);
|
|||
// Dynamic Loading of libraries:
|
||||
typedef void *loader_platform_dl_handle;
|
||||
static inline loader_platform_dl_handle loader_platform_open_library(const char *libPath) {
|
||||
// When loading the library, we use RTLD_LAZY so that not all symbols have to be
|
||||
// resolved at this time (which improves performance). Note that if not all symbols
|
||||
// can be resolved, this could cause crashes later. Use the LD_BIND_NOW environment
|
||||
// variable to force all symbols to be resolved here.
|
||||
return dlopen(libPath, RTLD_LAZY | RTLD_LOCAL);
|
||||
}
|
||||
static inline const char *loader_platform_open_library_error(const char *libPath) { return dlerror(); }
|
||||
|
@ -239,10 +243,18 @@ static char *loader_platform_basename(char *pathname) {
|
|||
|
||||
// Dynamic Loading:
|
||||
typedef HMODULE loader_platform_dl_handle;
|
||||
static loader_platform_dl_handle loader_platform_open_library(const char *libPath) { return LoadLibrary(libPath); }
|
||||
static loader_platform_dl_handle loader_platform_open_library(const char *lib_path) {
|
||||
// Try loading the library the original way first.
|
||||
loader_platform_dl_handle lib_handle = LoadLibrary(lib_path);
|
||||
if (lib_handle == NULL && GetLastError() == ERROR_MOD_NOT_FOUND && PathFileExists(lib_path)) {
|
||||
// If that failed, then try loading it with broader search folders.
|
||||
lib_handle = LoadLibraryEx(lib_path, NULL, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR);
|
||||
}
|
||||
return lib_handle;
|
||||
}
|
||||
static char *loader_platform_open_library_error(const char *libPath) {
|
||||
static char errorMsg[164];
|
||||
(void)snprintf(errorMsg, 163, "Failed to open dynamic library \"%s\"", libPath);
|
||||
(void)snprintf(errorMsg, 163, "Failed to open dynamic library \"%s\" with error %d", libPath, GetLastError());
|
||||
return errorMsg;
|
||||
}
|
||||
static void loader_platform_close_library(loader_platform_dl_handle library) { FreeLibrary(library); }
|
||||
|
|
|
@ -35,7 +35,13 @@
|
|||
// Version 3 - Add ICD creation/destruction of KHR_surface objects.
|
||||
// Version 4 - Add unknown physical device extension qyering via
|
||||
// vk_icdGetPhysicalDeviceProcAddr.
|
||||
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 4
|
||||
// Version 5 - Tells ICDs that the loader is now paying attention to the
|
||||
// application version of Vulkan passed into the ApplicationInfo
|
||||
// structure during vkCreateInstance. This will tell the ICD
|
||||
// that if the loader is older, it should automatically fail a
|
||||
// call for any API version > 1.0. Otherwise, the loader will
|
||||
// manually determine if it can support the expected version.
|
||||
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 5
|
||||
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
||||
#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
|
||||
|
|
|
@ -68,7 +68,7 @@ typedef struct VkNegotiateLayerInterface {
|
|||
typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderLayerInterfaceVersion)(VkNegotiateLayerInterface *pVersionStruct);
|
||||
|
||||
// Function prototype for unknown physical device extension command
|
||||
typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device, ...);
|
||||
typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device);
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
// CreateInstance and CreateDevice support structures
|
||||
|
@ -132,3 +132,12 @@ typedef struct {
|
|||
} u;
|
||||
} VkLayerDeviceCreateInfo;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkNegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -119,6 +119,19 @@ typedef struct VkLayerInstanceDispatchTable_ {
|
|||
PFN_vkGetPhysicalDeviceMemoryProperties2KHR GetPhysicalDeviceMemoryProperties2KHR;
|
||||
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR GetPhysicalDeviceSparseImageFormatProperties2KHR;
|
||||
|
||||
// ---- VK_KHR_external_memory_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR GetPhysicalDeviceExternalBufferPropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_external_semaphore_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR GetPhysicalDeviceExternalSemaphorePropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_external_fence_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR GetPhysicalDeviceExternalFencePropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
||||
PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR;
|
||||
PFN_vkGetPhysicalDeviceSurfaceFormats2KHR GetPhysicalDeviceSurfaceFormats2KHR;
|
||||
|
||||
// ---- VK_EXT_debug_report extension commands
|
||||
PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
|
||||
PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
|
||||
|
@ -138,12 +151,6 @@ typedef struct VkLayerInstanceDispatchTable_ {
|
|||
// ---- VK_KHX_device_group_creation extension commands
|
||||
PFN_vkEnumeratePhysicalDeviceGroupsKHX EnumeratePhysicalDeviceGroupsKHX;
|
||||
|
||||
// ---- VK_KHX_external_memory_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX GetPhysicalDeviceExternalBufferPropertiesKHX;
|
||||
|
||||
// ---- VK_KHX_external_semaphore_capabilities extension commands
|
||||
PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX GetPhysicalDeviceExternalSemaphorePropertiesKHX;
|
||||
|
||||
// ---- VK_NVX_device_generated_commands extension commands
|
||||
PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX GetPhysicalDeviceGeneratedCommandsPropertiesNVX;
|
||||
|
||||
|
@ -311,6 +318,30 @@ typedef struct VkLayerDispatchTable_ {
|
|||
// ---- VK_KHR_maintenance1 extension commands
|
||||
PFN_vkTrimCommandPoolKHR TrimCommandPoolKHR;
|
||||
|
||||
// ---- VK_KHR_external_memory_win32 extension commands
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
PFN_vkGetMemoryWin32HandleKHR GetMemoryWin32HandleKHR;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
PFN_vkGetMemoryWin32HandlePropertiesKHR GetMemoryWin32HandlePropertiesKHR;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
|
||||
// ---- VK_KHR_external_memory_fd extension commands
|
||||
PFN_vkGetMemoryFdKHR GetMemoryFdKHR;
|
||||
PFN_vkGetMemoryFdPropertiesKHR GetMemoryFdPropertiesKHR;
|
||||
|
||||
// ---- VK_KHR_external_semaphore_win32 extension commands
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
PFN_vkImportSemaphoreWin32HandleKHR ImportSemaphoreWin32HandleKHR;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
PFN_vkGetSemaphoreWin32HandleKHR GetSemaphoreWin32HandleKHR;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
|
||||
// ---- VK_KHR_external_semaphore_fd extension commands
|
||||
PFN_vkImportSemaphoreFdKHR ImportSemaphoreFdKHR;
|
||||
PFN_vkGetSemaphoreFdKHR GetSemaphoreFdKHR;
|
||||
|
||||
// ---- VK_KHR_push_descriptor extension commands
|
||||
PFN_vkCmdPushDescriptorSetKHR CmdPushDescriptorSetKHR;
|
||||
|
||||
|
@ -320,6 +351,26 @@ typedef struct VkLayerDispatchTable_ {
|
|||
PFN_vkUpdateDescriptorSetWithTemplateKHR UpdateDescriptorSetWithTemplateKHR;
|
||||
PFN_vkCmdPushDescriptorSetWithTemplateKHR CmdPushDescriptorSetWithTemplateKHR;
|
||||
|
||||
// ---- VK_KHR_shared_presentable_image extension commands
|
||||
PFN_vkGetSwapchainStatusKHR GetSwapchainStatusKHR;
|
||||
|
||||
// ---- VK_KHR_external_fence_win32 extension commands
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
PFN_vkImportFenceWin32HandleKHR ImportFenceWin32HandleKHR;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
PFN_vkGetFenceWin32HandleKHR GetFenceWin32HandleKHR;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
|
||||
// ---- VK_KHR_external_fence_fd extension commands
|
||||
PFN_vkImportFenceFdKHR ImportFenceFdKHR;
|
||||
PFN_vkGetFenceFdKHR GetFenceFdKHR;
|
||||
|
||||
// ---- VK_KHR_get_memory_requirements2 extension commands
|
||||
PFN_vkGetImageMemoryRequirements2KHR GetImageMemoryRequirements2KHR;
|
||||
PFN_vkGetBufferMemoryRequirements2KHR GetBufferMemoryRequirements2KHR;
|
||||
PFN_vkGetImageSparseMemoryRequirements2KHR GetImageSparseMemoryRequirements2KHR;
|
||||
|
||||
// ---- VK_EXT_debug_marker extension commands
|
||||
PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT;
|
||||
PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
|
||||
|
@ -346,30 +397,6 @@ typedef struct VkLayerDispatchTable_ {
|
|||
PFN_vkAcquireNextImage2KHX AcquireNextImage2KHX;
|
||||
PFN_vkCmdDispatchBaseKHX CmdDispatchBaseKHX;
|
||||
|
||||
// ---- VK_KHX_external_memory_win32 extension commands
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHX
|
||||
PFN_vkGetMemoryWin32HandleKHX GetMemoryWin32HandleKHX;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHX
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHX
|
||||
PFN_vkGetMemoryWin32HandlePropertiesKHX GetMemoryWin32HandlePropertiesKHX;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHX
|
||||
|
||||
// ---- VK_KHX_external_memory_fd extension commands
|
||||
PFN_vkGetMemoryFdKHX GetMemoryFdKHX;
|
||||
PFN_vkGetMemoryFdPropertiesKHX GetMemoryFdPropertiesKHX;
|
||||
|
||||
// ---- VK_KHX_external_semaphore_win32 extension commands
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHX
|
||||
PFN_vkImportSemaphoreWin32HandleKHX ImportSemaphoreWin32HandleKHX;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHX
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHX
|
||||
PFN_vkGetSemaphoreWin32HandleKHX GetSemaphoreWin32HandleKHX;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHX
|
||||
|
||||
// ---- VK_KHX_external_semaphore_fd extension commands
|
||||
PFN_vkImportSemaphoreFdKHX ImportSemaphoreFdKHX;
|
||||
PFN_vkGetSemaphoreFdKHX GetSemaphoreFdKHX;
|
||||
|
||||
// ---- VK_NVX_device_generated_commands extension commands
|
||||
PFN_vkCmdProcessCommandsNVX CmdProcessCommandsNVX;
|
||||
PFN_vkCmdReserveSpaceForCommandsNVX CmdReserveSpaceForCommandsNVX;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue