mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 22:58:46 +00:00
Merge remote-tracking branch 'offical/master'
This commit is contained in:
Vendored
+1
-1
@@ -67,7 +67,7 @@ main :: proc() {
|
||||
```
|
||||
|
||||
Writing to memory:
|
||||
```c
|
||||
```odin
|
||||
package main
|
||||
|
||||
import "vendor:cgltf"
|
||||
|
||||
Vendored
+15
-1
@@ -19,6 +19,8 @@ BOOL :: dxgi.BOOL
|
||||
UINT :: dxgi.UINT
|
||||
INT :: dxgi.INT
|
||||
|
||||
LPCWSTR :: [^]u16
|
||||
|
||||
RECT :: dxgi.RECT
|
||||
SIZE :: dxgi.SIZE
|
||||
|
||||
@@ -3281,7 +3283,19 @@ IVideoContext_VTable :: struct {
|
||||
VideoProcessorGetStreamRotation: proc "system" (this: ^IVideoContext, pVideoProcessor: ^IVideoProcessor, StreamIndex: u32, pEnable: ^BOOL, pRotation: ^VIDEO_PROCESSOR_ROTATION),
|
||||
}
|
||||
|
||||
|
||||
IUserDefinedAnnotation_UUID_STRING :: "B2DAAD8B-03D4-4DBF-95EB-32AB4B63D0AB"
|
||||
IUserDefinedAnnotation_UUID := &IID{0xB2DAAD8B, 0x03D4, 0x4DBF, {0x95, 0xEB, 0x32, 0xAB, 0x4B, 0x63, 0xD0, 0xAB}}
|
||||
IUserDefinedAnnotation :: struct #raw_union {
|
||||
#subtype iunknown: IUnknown,
|
||||
using id3d11userdefinedannotation_vtable: ^IUserDefinedAnnotation_VTable,
|
||||
}
|
||||
IUserDefinedAnnotation_VTable :: struct {
|
||||
using iunknown_vtable : IUnknown_VTable,
|
||||
BeginEvent: proc "system" (this: ^IUserDefinedAnnotation, Name: LPCWSTR) -> i32,
|
||||
EndEvent: proc "system" (this: ^IUserDefinedAnnotation) -> i32,
|
||||
GetStatus: proc "system" (this: ^IUserDefinedAnnotation) -> i32,
|
||||
SetMarker: proc "system" (this: ^IUserDefinedAnnotation, Name: LPCWSTR),
|
||||
}
|
||||
|
||||
IVideoDevice_UUID_STRING :: "10EC4D5B-975A-4689-B9E4-D0AAC30FE333"
|
||||
IVideoDevice_UUID := &IID{0x10EC4D5B, 0x975A, 0x4689, {0xB9, 0xE4, 0xD0, 0xAA, 0xC3, 0x0F, 0xE3, 0x33}}
|
||||
|
||||
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
Copyright (c) 2016, Alliance for Open Media. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Vendored
+353
@@ -0,0 +1,353 @@
|
||||
Copyright 2019 Joe Drago. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Files: src/obu.c
|
||||
|
||||
Copyright © 2018-2019, VideoLAN and dav1d authors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Files: apps/shared/iccjpeg.*
|
||||
|
||||
In plain English:
|
||||
|
||||
1. We don't promise that this software works. (But if you find any bugs,
|
||||
please let us know!)
|
||||
2. You can use this software for whatever you want. You don't have to pay us.
|
||||
3. You may not pretend that you wrote this software. If you use it in a
|
||||
program, you must acknowledge somewhere in your documentation that
|
||||
you've used the IJG code.
|
||||
|
||||
In legalese:
|
||||
|
||||
The authors make NO WARRANTY or representation, either express or implied,
|
||||
with respect to this software, its quality, accuracy, merchantability, or
|
||||
fitness for a particular purpose. This software is provided "AS IS", and you,
|
||||
its user, assume the entire risk as to its quality and accuracy.
|
||||
|
||||
This software is copyright (C) 1991-2013, Thomas G. Lane, Guido Vollbeding.
|
||||
All Rights Reserved except as specified below.
|
||||
|
||||
Permission is hereby granted to use, copy, modify, and distribute this
|
||||
software (or portions thereof) for any purpose, without fee, subject to these
|
||||
conditions:
|
||||
(1) If any part of the source code for this software is distributed, then this
|
||||
README file must be included, with this copyright and no-warranty notice
|
||||
unaltered; and any additions, deletions, or changes to the original files
|
||||
must be clearly indicated in accompanying documentation.
|
||||
(2) If only executable code is distributed, then the accompanying
|
||||
documentation must state that "this software is based in part on the work of
|
||||
the Independent JPEG Group".
|
||||
(3) Permission for use of this software is granted only if the user accepts
|
||||
full responsibility for any undesirable consequences; the authors accept
|
||||
NO LIABILITY for damages of any kind.
|
||||
|
||||
These conditions apply to any software derived from or based on the IJG code,
|
||||
not just to the unmodified library. If you use our work, you ought to
|
||||
acknowledge us.
|
||||
|
||||
Permission is NOT granted for the use of any IJG author's name or company name
|
||||
in advertising or publicity relating to this software or products derived from
|
||||
it. This software may be referred to only as "the Independent JPEG Group's
|
||||
software".
|
||||
|
||||
We specifically permit and encourage the use of this software as the basis of
|
||||
commercial products, provided that all warranty or liability claims are
|
||||
assumed by the product vendor.
|
||||
|
||||
|
||||
The Unix configuration script "configure" was produced with GNU Autoconf.
|
||||
It is copyright by the Free Software Foundation but is freely distributable.
|
||||
The same holds for its supporting scripts (config.guess, config.sub,
|
||||
ltmain.sh). Another support script, install-sh, is copyright by X Consortium
|
||||
but is also freely distributable.
|
||||
|
||||
The IJG distribution formerly included code to read and write GIF files.
|
||||
To avoid entanglement with the Unisys LZW patent, GIF reading support has
|
||||
been removed altogether, and the GIF writer has been simplified to produce
|
||||
"uncompressed GIFs". This technique does not use the LZW algorithm; the
|
||||
resulting GIF files are larger than usual, but are readable by all standard
|
||||
GIF decoders.
|
||||
|
||||
We are required to state that
|
||||
"The Graphics Interchange Format(c) is the Copyright property of
|
||||
CompuServe Incorporated. GIF(sm) is a Service Mark property of
|
||||
CompuServe Incorporated."
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Files: contrib/gdk-pixbuf/*
|
||||
|
||||
Copyright 2020 Emmanuel Gil Peyrot. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Files: android_jni/gradlew*
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
Copyright © 2018-2019, VideoLAN and dav1d authors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Vendored
+21
@@ -0,0 +1,21 @@
|
||||
Copyright (c) 1988-1997 Sam Leffler
|
||||
Copyright (c) 1991-1997 Silicon Graphics, Inc.
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and
|
||||
its documentation for any purpose is hereby granted without fee, provided
|
||||
that (i) the above copyright notices and this permission notice appear in
|
||||
all copies of the software and related documentation, and (ii) the names of
|
||||
Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
publicity relating to the software without the specific, prior written
|
||||
permission of Sam Leffler and Silicon Graphics.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
OF THIS SOFTWARE.
|
||||
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
Vendored
+30
@@ -0,0 +1,30 @@
|
||||
Copyright (c) 2010, Google Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
* Neither the name of Google nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
+2110
File diff suppressed because it is too large
Load Diff
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Vendored
+107
@@ -0,0 +1,107 @@
|
||||
package sdl3_image
|
||||
|
||||
import "core:c"
|
||||
import SDL "vendor:sdl3"
|
||||
|
||||
when ODIN_OS == .Windows {
|
||||
foreign import lib "SDL3_image.lib"
|
||||
} else {
|
||||
foreign import lib "system:SDL3_image"
|
||||
}
|
||||
|
||||
MAJOR_VERSION :: 3
|
||||
MINOR_VERSION :: 2
|
||||
PATCHLEVEL :: 0
|
||||
|
||||
Animation :: struct {
|
||||
w, h: c.int,
|
||||
count: c.int,
|
||||
frames: [^]^SDL.Surface,
|
||||
delays: [^]c.int,
|
||||
}
|
||||
|
||||
@(default_calling_convention="c", link_prefix="IMG_")
|
||||
foreign lib {
|
||||
Version :: proc() -> c.int ---
|
||||
|
||||
/* Load an image from an SDL data source.
|
||||
The 'type' may be one of: "BMP", "GIF", "PNG", etc.
|
||||
If the image format supports a transparent pixel, SDL will set the
|
||||
colorkey for the surface. You can enable RLE acceleration on the
|
||||
surface afterwards by calling:
|
||||
SDL_SetColorKey(image, SDL_RLEACCEL, image->format->colorkey);
|
||||
*/
|
||||
LoadTyped_IO :: proc(src: ^SDL.IOStream, closeio: bool, type: cstring) -> ^SDL.Surface ---
|
||||
|
||||
/* Convenience functions */
|
||||
Load :: proc(file: cstring) -> ^SDL.Surface ---
|
||||
Load_IO :: proc(src: ^SDL.IOStream, closeio: bool) -> ^SDL.Surface ---
|
||||
|
||||
/* Load an image directly into a render texture. */
|
||||
LoadTexture :: proc(renderer: ^SDL.Renderer, file: cstring) -> ^SDL.Texture ---
|
||||
LoadTexture_IO :: proc(renderer: ^SDL.Renderer, src: ^SDL.IOStream, closeio: bool) -> ^SDL.Texture ---
|
||||
LoadTextureTyped_IO :: proc(renderer: ^SDL.Renderer, src: ^SDL.IOStream, closeio: bool, type: cstring) -> ^SDL.Texture ---
|
||||
|
||||
/* Functions to detect a file type, given a seekable source */
|
||||
isAVIF :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isICO :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isCUR :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isBMP :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isGIF :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isJPG :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isJXL :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isLBM :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isPCX :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isPNG :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isPNM :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isSVG :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isQOI :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isTIF :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isXCF :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isXPM :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isXV :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
isWEBP :: proc(src: ^SDL.IOStream) -> bool ---
|
||||
|
||||
/* Individual loading functions */
|
||||
LoadAVIF_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadICO_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadCUR_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadBMP_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadGIF_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadJPG_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadJXL_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadLBM_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadPCX_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadPNG_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadPNM_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadSVG_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadQOI_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadTGA_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadTIF_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadXCF_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadXPM_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadXV_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
LoadWEBP_IO :: proc(src: ^SDL.IOStream) -> ^SDL.Surface ---
|
||||
|
||||
LoadSizedSVG_IO :: proc(src: ^SDL.IOStream, width, height: c.int) -> ^SDL.Surface ---
|
||||
|
||||
ReadXPMFromArray :: proc(xpm: [^]cstring) -> ^SDL.Surface ---
|
||||
ReadXPMFromArrayToRGB888 :: proc(xpm: [^]cstring) -> ^SDL.Surface ---
|
||||
|
||||
/* Individual saving functions */
|
||||
SaveAVIF :: proc(surface: ^SDL.Surface, file: cstring, quality: c.int) -> c.int ---
|
||||
SaveAVIF_IO :: proc(surface: ^SDL.Surface, dst: ^SDL.IOStream, closeio: bool, quality: c.int) -> c.int ---
|
||||
SavePNG :: proc(surface: ^SDL.Surface, file: cstring) -> c.int ---
|
||||
SavePNG_IO :: proc(surface: ^SDL.Surface, dst: ^SDL.IOStream, closeio: bool) -> c.int ---
|
||||
SaveJPG :: proc(surface: ^SDL.Surface, file: cstring, quality: c.int) -> c.int ---
|
||||
SaveJPG_IO :: proc(surface: ^SDL.Surface, dst: ^SDL.IOStream, closeio: bool, quality: c.int) -> c.int ---
|
||||
|
||||
LoadAnimation :: proc(file: cstring) -> ^Animation ---
|
||||
LoadAnimation_IO :: proc(src: ^SDL.IOStream, closeio: bool) -> ^Animation ---
|
||||
LoadAnimationTyped_IO :: proc(src: ^SDL.IOStream, closeio: bool, type: cstring) -> ^Animation ---
|
||||
FreeAnimation :: proc(anim: ^Animation) ---
|
||||
|
||||
/* Individual loading functions */
|
||||
LoadGIFAnimation_IO :: proc(src: ^SDL.IOStream) -> ^Animation ---
|
||||
LoadWEBPAnimation_IO :: proc(src: ^SDL.IOStream) -> ^Animation ---
|
||||
}
|
||||
Vendored
+1
-1
@@ -52,7 +52,7 @@ foreign lib {
|
||||
TextInputActive :: proc(window: ^Window) -> bool ---
|
||||
StopTextInput :: proc(window: ^Window) -> bool ---
|
||||
ClearComposition :: proc(window: ^Window) -> bool ---
|
||||
SetTextInputArea :: proc(window: ^Window, #by_ptr rect: Rect, cursor: c.int) -> bool ---
|
||||
SetTextInputArea :: proc(window: ^Window, rect: Maybe(^Rect), cursor: c.int) -> bool ---
|
||||
GetTextInputArea :: proc(window: ^Window, rect: ^Rect, cursor: ^c.int) -> bool ---
|
||||
HasScreenKeyboardSupport :: proc() -> bool ---
|
||||
ScreenKeyboardShown :: proc(window: ^Window) -> bool ---
|
||||
|
||||
Vendored
+4
-4
@@ -183,10 +183,10 @@ foreign lib {
|
||||
RenderCoordinatesFromWindow :: proc(renderer: ^Renderer, window_x, window_y: f32, x, y: ^f32) -> bool ---
|
||||
RenderCoordinatesToWindow :: proc(renderer: ^Renderer, x, y: f32, window_x, window_y: ^f32) -> bool ---
|
||||
ConvertEventToRenderCoordinates :: proc(renderer: ^Renderer, event: ^Event) -> bool ---
|
||||
SetRenderViewport :: proc(renderer: ^Renderer, #by_ptr rect: Rect) -> bool ---
|
||||
SetRenderViewport :: proc(renderer: ^Renderer, rect: Maybe(^Rect)) -> bool ---
|
||||
GetRenderViewport :: proc(renderer: ^Renderer, rect: ^Rect) -> bool ---
|
||||
GetRenderSafeArea :: proc(renderer: ^Renderer, rect: ^Rect) -> bool ---
|
||||
SetRenderClipRect :: proc(renderer: ^Renderer, #by_ptr rect: Rect) -> bool ---
|
||||
SetRenderClipRect :: proc(renderer: ^Renderer, rect: Maybe(^Rect)) -> bool ---
|
||||
GetRenderClipRect :: proc(renderer: ^Renderer, rect: ^Rect) -> bool ---
|
||||
SetRenderScale :: proc(renderer: ^Renderer, scaleX, scaleY: f32) -> bool ---
|
||||
GetRenderScale :: proc(renderer: ^Renderer, scaleX, scaleY: ^f32) -> bool ---
|
||||
@@ -203,9 +203,9 @@ foreign lib {
|
||||
RenderPoints :: proc(renderer: ^Renderer, points: [^]FPoint, count: c.int) -> bool ---
|
||||
RenderLine :: proc(renderer: ^Renderer, x1, y1, x2, y2: f32) -> bool ---
|
||||
RenderLines :: proc(renderer: ^Renderer, points: [^]FPoint, count: c.int) -> bool ---
|
||||
RenderRect :: proc(renderer: ^Renderer, #by_ptr rect: FRect) -> bool ---
|
||||
RenderRect :: proc(renderer: ^Renderer, rect: Maybe(^FRect)) -> bool ---
|
||||
RenderRects :: proc(renderer: ^Renderer, rects: [^]FRect, count: c.int) -> bool ---
|
||||
RenderFillRect :: proc(renderer: ^Renderer, #by_ptr rect: FRect) -> bool ---
|
||||
RenderFillRect :: proc(renderer: ^Renderer, rect: Maybe(^FRect)) -> bool ---
|
||||
RenderFillRects :: proc(renderer: ^Renderer, rects: [^]FRect, count: c.int) -> bool ---
|
||||
RenderTexture :: proc(renderer: ^Renderer, texture: ^Texture, srcrect, dstrect: Maybe(^FRect)) -> bool ---
|
||||
RenderTextureRotated :: proc(renderer: ^Renderer, texture: ^Texture, srcrect, dstrect: Maybe(^FRect), angle: f64, #by_ptr center: FPoint, flip: FlipMode) -> bool ---
|
||||
|
||||
Vendored
+9
-9
@@ -78,7 +78,7 @@ foreign lib {
|
||||
GetSurfaceAlphaMod :: proc(surface: ^Surface, alpha: ^Uint8) -> bool ---
|
||||
SetSurfaceBlendMode :: proc(surface: ^Surface, blendMode: BlendMode) -> bool ---
|
||||
GetSurfaceBlendMode :: proc(surface: ^Surface, blendMode: ^BlendMode) -> bool ---
|
||||
SetSurfaceClipRect :: proc(surface: ^Surface, #by_ptr rect: Rect) -> bool ---
|
||||
SetSurfaceClipRect :: proc(surface: ^Surface, rect: Maybe(^Rect)) -> bool ---
|
||||
GetSurfaceClipRect :: proc(surface: ^Surface, rect: ^Rect) -> bool ---
|
||||
FlipSurface :: proc(surface: ^Surface, flip: FlipMode) -> bool ---
|
||||
DuplicateSurface :: proc(surface: ^Surface) -> ^Surface ---
|
||||
@@ -90,15 +90,15 @@ foreign lib {
|
||||
PremultiplyAlpha :: proc(width, height: c.int, src_format: PixelFormat, src: rawptr, src_pitch: c.int, dst_format: PixelFormat, dst: rawptr, dst_pitch: c.int, linear: bool) -> bool ---
|
||||
PremultiplySurfaceAlpha :: proc(surface: ^Surface, linear: bool) -> bool ---
|
||||
ClearSurface :: proc(surface: ^Surface, r, g, b, a: f32) -> bool ---
|
||||
FillSurfaceRect :: proc(dst: ^Surface, #by_ptr rect: Rect, color: Uint32) -> bool ---
|
||||
FillSurfaceRect :: proc(dst: ^Surface, rect: Maybe(^Rect), color: Uint32) -> bool ---
|
||||
FillSurfaceRects :: proc(dst: ^Surface, rects: [^]Rect, count: c.int, color: Uint32) -> bool ---
|
||||
BlitSurface :: proc(src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect) -> bool ---
|
||||
BlitSurfaceUnchecked :: proc(src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect) -> bool ---
|
||||
BlitSurfaceScaled :: proc(src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect, scaleMode: ScaleMode) -> bool ---
|
||||
BlitSurfaceUncheckedScaled :: proc(src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect, scaleMode: ScaleMode) -> bool ---
|
||||
BlitSurfaceTiled :: proc(src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect) -> bool ---
|
||||
BlitSurfaceTiledWithScale :: proc(src: ^Surface, #by_ptr srcrect: Rect, scale: f32, scaleMode: ScaleMode, dst: ^Surface, #by_ptr dstrect: Rect) -> bool ---
|
||||
BlitSurface9Grid :: proc(src: ^Surface, #by_ptr srcrect: Rect, left_width, right_width, top_height, bottom_height: c.int, scale: f32, scaleMode: ScaleMode, dst: ^Surface, #by_ptr dstrect: Rect) -> bool ---
|
||||
BlitSurface :: proc(src: ^Surface, srcrect: Maybe(^Rect), dst: ^Surface, dstrect: Maybe(^Rect)) -> bool ---
|
||||
BlitSurfaceUnchecked :: proc(src: ^Surface, srcrect: Maybe(^Rect), dst: ^Surface, dstrect: Maybe(^Rect)) -> bool ---
|
||||
BlitSurfaceScaled :: proc(src: ^Surface, srcrect: Maybe(^Rect), dst: ^Surface, dstrect: Maybe(^Rect), scaleMode: ScaleMode) -> bool ---
|
||||
BlitSurfaceUncheckedScaled :: proc(src: ^Surface, srcrect: Maybe(^Rect), dst: ^Surface, dstrect: Maybe(^Rect), scaleMode: ScaleMode) -> bool ---
|
||||
BlitSurfaceTiled :: proc(src: ^Surface, srcrect: Maybe(^Rect), dst: ^Surface, dstrect: Maybe(^Rect)) -> bool ---
|
||||
BlitSurfaceTiledWithScale :: proc(src: ^Surface, srcrect: Maybe(^Rect), scale: f32, scaleMode: ScaleMode, dst: ^Surface, dstrect: Maybe(^Rect)) -> bool ---
|
||||
BlitSurface9Grid :: proc(src: ^Surface, srcrect: Maybe(^Rect), left_width, right_width, top_height, bottom_height: c.int, scale: f32, scaleMode: ScaleMode, dst: ^Surface, dstrect: Maybe(^Rect)) -> bool ---
|
||||
MapSurfaceRGB :: proc(surface: ^Surface, r, g, b: Uint8) -> Uint32 ---
|
||||
MapSurfaceRGBA :: proc(surface: ^Surface, r, g, b, a: Uint8) -> Uint32 ---
|
||||
ReadSurfacePixel :: proc(surface: ^Surface, x, y: c.int, r, g, b, a: ^Uint8) -> bool ---
|
||||
|
||||
+128
-44
@@ -18,6 +18,7 @@ file_and_urls = [
|
||||
("vulkan_wayland.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_wayland.h', False),
|
||||
("vulkan_xlib.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_xlib.h', False),
|
||||
("vulkan_xcb.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_xcb.h', False),
|
||||
("vulkan_beta.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_beta.h', False),
|
||||
# Vulkan Video
|
||||
("vulkan_video_codec_av1std.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std.h', False),
|
||||
("vulkan_video_codec_av1std_decode.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std_decode.h', False),
|
||||
@@ -338,7 +339,6 @@ def parse_enums(f):
|
||||
generated_flags.add(flags_name)
|
||||
f.write("{} :: distinct bit_set[{}; Flags]\n".format(flags_name, enum_name))
|
||||
|
||||
|
||||
if is_flag_bit:
|
||||
f.write("{} :: enum Flags {{\n".format(name.replace("FlagBits", "Flag")))
|
||||
else:
|
||||
@@ -537,80 +537,164 @@ def parse_fake_enums(f):
|
||||
|
||||
f.write("}\n\n")
|
||||
|
||||
class BitfieldError(ValueError):
|
||||
pass
|
||||
|
||||
def bitfield_type_to_size(type_):
|
||||
if type_ == 'u8':
|
||||
return 8
|
||||
if type_ == 'u16':
|
||||
return 16
|
||||
if type_ == 'u32':
|
||||
return 32
|
||||
if type_ == 'u64':
|
||||
return 64
|
||||
if 'Flags' in type_:
|
||||
return 32
|
||||
else:
|
||||
raise BitfieldError(f"Invalid type for bitfield: {type_}")
|
||||
|
||||
def bitfield_size_to_type(size):
|
||||
if size == 8:
|
||||
return 'u8'
|
||||
if size == 16:
|
||||
return 'u16'
|
||||
if size == 32:
|
||||
return 'u32'
|
||||
if size == 64:
|
||||
return 'u64'
|
||||
else:
|
||||
raise BitfieldError(f"Invalid size for bitfield: {size}")
|
||||
|
||||
|
||||
class Bitfield:
|
||||
class Field:
|
||||
def __init__(self, name, type_, bitsize):
|
||||
self.name = name
|
||||
self.type = type_
|
||||
self.bitsize = bitsize
|
||||
|
||||
def __init__(self, type_):
|
||||
self.bitsize = bitfield_type_to_size(type_)
|
||||
self.type = bitfield_size_to_type(self.bitsize)
|
||||
self.fields_bitsize = 0
|
||||
self.fields = []
|
||||
|
||||
def add_field(self, name, type_, bitsize):
|
||||
self.fields.append(Bitfield.Field(name, type_, bitsize))
|
||||
self.fields_bitsize += bitsize
|
||||
|
||||
def write(self, f, name=None, indent=0, justify=True):
|
||||
max_name = 1 if not justify else max([len(f.name) for f in self.fields], default=0)
|
||||
max_type = 1 if not justify else max([len(f.type) for f in self.fields], default=0)
|
||||
is_bit_set = all([f.bitsize == 1 or f.name == "reserved" for f in self.fields])
|
||||
if is_bit_set and name is None:
|
||||
raise BitfieldError(f"bit_set can not be anonymous")
|
||||
|
||||
if is_bit_set:
|
||||
if not name.endswith("Flags"):
|
||||
raise BitfieldError(f"bit_set name should end with 'Flags': {name}")
|
||||
enum_name = re.sub('Flags$', 'Flag', name)
|
||||
f.write("{}{} :: distinct bit_set[{}; {}]\n".format('\t' * indent, name, enum_name, self.type))
|
||||
f.write("{}{} :: enum {} {{\n".format('\t' * indent, enum_name, self.type))
|
||||
for field in self.fields:
|
||||
if field.name != "reserved":
|
||||
f.write("{}{},\n".format('\t' * (indent + 1), field.name))
|
||||
f.write(('\t' * indent) + "}\n")
|
||||
|
||||
else:
|
||||
f.write("{}{} bit_field {} {{\n".format('\t' * indent, name + ' ::' if name else 'using _:', self.type))
|
||||
for field in self.fields:
|
||||
type_ = field.type.replace("Flags", "Flag")
|
||||
f.write("{}{} {} | {},\n".format(
|
||||
'\t' * (indent + 1),
|
||||
(field.name + ":").ljust(max_name + 1),
|
||||
type_.ljust(max_type),
|
||||
field.bitsize))
|
||||
f.write(('\t' * indent) + "}" + ("," if name is None else "") + "\n")
|
||||
|
||||
def parse_structs(f):
|
||||
data = re.findall(r"typedef (struct|union) Vk(\w+?) {(.+?)} \w+?;", src, re.S)
|
||||
data += re.findall(r"typedef (struct|union) Std(\w+?) {(.+?)} \w+?;", src, re.S)
|
||||
|
||||
for _type, name, fields in data:
|
||||
for _type, struct_name, fields in data:
|
||||
fields = re.findall(r"\s+(.+?)[\s:]+([_a-zA-Z0-9[\]]+);", fields)
|
||||
f.write("{} :: struct ".format(name))
|
||||
if _type == "union":
|
||||
f.write("#raw_union ")
|
||||
f.write("{\n")
|
||||
|
||||
|
||||
prev_name = ""
|
||||
ffields = []
|
||||
bitfield = None
|
||||
for type_, fname in fields:
|
||||
|
||||
# If the field name only has a number in it, then it is a C bit field.
|
||||
# We will collect all the bit fields and then create either a bit_field or a bit_set.
|
||||
if is_int(fname):
|
||||
comment = None
|
||||
bit_field = type_.split(' ')
|
||||
bf_field = type_.split(' ')
|
||||
# Get rid of empty spaces
|
||||
bit_field = list(filter(bool, bit_field))
|
||||
bf_field = list(filter(bool, bf_field))
|
||||
# [type, fieldname]
|
||||
assert len(bit_field) == 2, "Failed to parse the bit field!"
|
||||
assert len(bf_field) == 2, "Failed to parse the bit field!"
|
||||
field_type = do_type(bf_field[0])
|
||||
bitsize = int(fname)
|
||||
|
||||
# Close the set because the field size is greater than the bitfield type
|
||||
if bitfield and (bitfield.fields_bitsize + bitsize) > bitfield_type_to_size(field_type):
|
||||
ffields.append(tuple([None, bitfield]))
|
||||
bitfield = None
|
||||
|
||||
bit_field_type = ""
|
||||
# Right now there are only two ways that C bit fields exist in
|
||||
# the header files.
|
||||
# Raise an error if the field type size is greater than the bitfield type size
|
||||
if bitfield is not None and bitfield_type_to_size(bitfield.type) < bitfield_type_to_size(field_type):
|
||||
raise BitfieldError(f"field will not fit in the bitfield: {bitfield.type} < {field_type}")
|
||||
|
||||
# First one uses the 8 MOST significant bits for one field, and
|
||||
# 24 bits for the other field.
|
||||
# In the bindings these two fields are merged into one u32.
|
||||
if int(fname) == 24:
|
||||
prev_name = bit_field[1]
|
||||
continue
|
||||
|
||||
elif prev_name:
|
||||
bit_field_type = do_type("uint32_t")
|
||||
bit_field_name = prev_name + "And" + bit_field[1].capitalize()
|
||||
comment = " // Most significant byte is {}".format(bit_field[1])
|
||||
ffields.append(tuple([bit_field_name, bit_field_type, comment]))
|
||||
prev_name = ""
|
||||
continue
|
||||
|
||||
# The second way has many fields that are each 1 bit
|
||||
elif int(fname) == 1:
|
||||
bit_field_type = do_type(bit_field[0], prev_name, fname)
|
||||
ffields.append(tuple(["bitfield", bit_field_type, comment]))
|
||||
break
|
||||
# Create a new bitfield if we don't have one
|
||||
if not bitfield:
|
||||
bitfield = Bitfield(field_type)
|
||||
|
||||
# Add the field to the bitfield
|
||||
bitfield.add_field(bf_field[1], field_type, bitsize)
|
||||
continue
|
||||
|
||||
# Close the bitfield because this is not a field
|
||||
elif bitfield:
|
||||
ffields.append(tuple([None, bitfield]))
|
||||
bitfield = None
|
||||
|
||||
if '[' in fname:
|
||||
fname, type_ = parse_array(fname, type_)
|
||||
comment = None
|
||||
n = fix_arg(fname)
|
||||
if "Flag_Bits" in type_:
|
||||
comment = " // only single bit set"
|
||||
# comment = " // only single bit set"
|
||||
raise BitfieldError("only single bit set")
|
||||
t = do_type(type_, prev_name, fname)
|
||||
if n == "matrix":
|
||||
n = "mat"
|
||||
|
||||
ffields.append(tuple([n, t, comment]))
|
||||
ffields.append(tuple([n, t]))
|
||||
prev_name = fname
|
||||
|
||||
max_len = max([len(n) for n, _, _ in ffields], default=0)
|
||||
# Close the bitfield because we have no more fields
|
||||
if bitfield:
|
||||
ffields.append(tuple([None, bitfield]))
|
||||
|
||||
for n, t, comment in ffields:
|
||||
k = max_len-len(n)+len(t)
|
||||
f.write("\t{}: {},{}\n".format(n, t.rjust(k), comment or ""))
|
||||
# Write the struct as a bitfield if it only has bit fields
|
||||
if len(ffields) == 1 and ffields[0][0] is None:
|
||||
ffields[0][1].write(f, struct_name, 0, True)
|
||||
f.write("\n")
|
||||
|
||||
|
||||
f.write("}\n\n")
|
||||
# Write as a normal struct (or union) if it has other fields
|
||||
# and inject anonymous bitfields into the struct if there are any
|
||||
else:
|
||||
has_anon_bitfield = any(name is None for name, _ in ffields)
|
||||
max_len = max([0 if n is None else len(n) for n, _ in ffields], default=0)
|
||||
f.write("{} :: struct ".format(struct_name))
|
||||
if _type == "union":
|
||||
f.write("#raw_union ")
|
||||
f.write("{\n")
|
||||
for name, type_ in ffields:
|
||||
if name is None:
|
||||
# Inject an anonymous bitfield into the struct
|
||||
type_.write(f, None, indent=1, justify=True)
|
||||
else:
|
||||
f.write("\t{} {},\n".format((name + ":").ljust(max_len + 1), type_))
|
||||
f.write("}\n\n")
|
||||
|
||||
f.write("// Opaque structs\n")
|
||||
f.write(OPAQUE_STRUCTS)
|
||||
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
// File: vk_platform.h
|
||||
//
|
||||
/*
|
||||
** Copyright 2014-2024 The Khronos Group Inc.
|
||||
** Copyright 2014-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Vendored
+226
@@ -0,0 +1,226 @@
|
||||
#ifndef VULKAN_BETA_H_
|
||||
#define VULKAN_BETA_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
// VK_KHR_portability_subset is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_KHR_portability_subset 1
|
||||
#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1
|
||||
#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
|
||||
typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 constantAlphaColorBlendFactors;
|
||||
VkBool32 events;
|
||||
VkBool32 imageViewFormatReinterpretation;
|
||||
VkBool32 imageViewFormatSwizzle;
|
||||
VkBool32 imageView2DOn3DImage;
|
||||
VkBool32 multisampleArrayImage;
|
||||
VkBool32 mutableComparisonSamplers;
|
||||
VkBool32 pointPolygons;
|
||||
VkBool32 samplerMipLodBias;
|
||||
VkBool32 separateStencilMaskRef;
|
||||
VkBool32 shaderSampleRateInterpolationFunctions;
|
||||
VkBool32 tessellationIsolines;
|
||||
VkBool32 tessellationPointMode;
|
||||
VkBool32 triangleFans;
|
||||
VkBool32 vertexAttributeAccessBeyondStride;
|
||||
} VkPhysicalDevicePortabilitySubsetFeaturesKHR;
|
||||
|
||||
typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t minVertexInputBindingStrideAlignment;
|
||||
} VkPhysicalDevicePortabilitySubsetPropertiesKHR;
|
||||
|
||||
|
||||
|
||||
// VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_AMDX_shader_enqueue 1
|
||||
#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 2
|
||||
#define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue"
|
||||
#define VK_SHADER_INDEX_UNUSED_AMDX (~0U)
|
||||
typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 shaderEnqueue;
|
||||
VkBool32 shaderMeshEnqueue;
|
||||
} VkPhysicalDeviceShaderEnqueueFeaturesAMDX;
|
||||
|
||||
typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t maxExecutionGraphDepth;
|
||||
uint32_t maxExecutionGraphShaderOutputNodes;
|
||||
uint32_t maxExecutionGraphShaderPayloadSize;
|
||||
uint32_t maxExecutionGraphShaderPayloadCount;
|
||||
uint32_t executionGraphDispatchAddressAlignment;
|
||||
uint32_t maxExecutionGraphWorkgroupCount[3];
|
||||
uint32_t maxExecutionGraphWorkgroups;
|
||||
} VkPhysicalDeviceShaderEnqueuePropertiesAMDX;
|
||||
|
||||
typedef struct VkExecutionGraphPipelineScratchSizeAMDX {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkDeviceSize minSize;
|
||||
VkDeviceSize maxSize;
|
||||
VkDeviceSize sizeGranularity;
|
||||
} VkExecutionGraphPipelineScratchSizeAMDX;
|
||||
|
||||
typedef struct VkExecutionGraphPipelineCreateInfoAMDX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkPipelineCreateFlags flags;
|
||||
uint32_t stageCount;
|
||||
const VkPipelineShaderStageCreateInfo* pStages;
|
||||
const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
|
||||
VkPipelineLayout layout;
|
||||
VkPipeline basePipelineHandle;
|
||||
int32_t basePipelineIndex;
|
||||
} VkExecutionGraphPipelineCreateInfoAMDX;
|
||||
|
||||
typedef union VkDeviceOrHostAddressConstAMDX {
|
||||
VkDeviceAddress deviceAddress;
|
||||
const void* hostAddress;
|
||||
} VkDeviceOrHostAddressConstAMDX;
|
||||
|
||||
typedef struct VkDispatchGraphInfoAMDX {
|
||||
uint32_t nodeIndex;
|
||||
uint32_t payloadCount;
|
||||
VkDeviceOrHostAddressConstAMDX payloads;
|
||||
uint64_t payloadStride;
|
||||
} VkDispatchGraphInfoAMDX;
|
||||
|
||||
typedef struct VkDispatchGraphCountInfoAMDX {
|
||||
uint32_t count;
|
||||
VkDeviceOrHostAddressConstAMDX infos;
|
||||
uint64_t stride;
|
||||
} VkDispatchGraphCountInfoAMDX;
|
||||
|
||||
typedef struct VkPipelineShaderStageNodeCreateInfoAMDX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const char* pName;
|
||||
uint32_t index;
|
||||
} VkPipelineShaderStageNodeCreateInfoAMDX;
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkPipeline executionGraph, VkDeviceAddress scratch, VkDeviceSize scratchSize);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, VkDeviceAddress countInfo);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX(
|
||||
VkDevice device,
|
||||
VkPipelineCache pipelineCache,
|
||||
uint32_t createInfoCount,
|
||||
const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkPipeline* pPipelines);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineScratchSizeAMDX(
|
||||
VkDevice device,
|
||||
VkPipeline executionGraph,
|
||||
VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX(
|
||||
VkDevice device,
|
||||
VkPipeline executionGraph,
|
||||
const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo,
|
||||
uint32_t* pNodeIndex);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkPipeline executionGraph,
|
||||
VkDeviceAddress scratch,
|
||||
VkDeviceSize scratchSize);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkDeviceAddress scratch,
|
||||
VkDeviceSize scratchSize,
|
||||
const VkDispatchGraphCountInfoAMDX* pCountInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkDeviceAddress scratch,
|
||||
VkDeviceSize scratchSize,
|
||||
const VkDispatchGraphCountInfoAMDX* pCountInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkDeviceAddress scratch,
|
||||
VkDeviceSize scratchSize,
|
||||
VkDeviceAddress countInfo);
|
||||
#endif
|
||||
|
||||
|
||||
// VK_NV_displacement_micromap is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_NV_displacement_micromap 1
|
||||
#define VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION 2
|
||||
#define VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME "VK_NV_displacement_micromap"
|
||||
|
||||
typedef enum VkDisplacementMicromapFormatNV {
|
||||
VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV = 1,
|
||||
VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV = 2,
|
||||
VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV = 3,
|
||||
VK_DISPLACEMENT_MICROMAP_FORMAT_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkDisplacementMicromapFormatNV;
|
||||
typedef struct VkPhysicalDeviceDisplacementMicromapFeaturesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 displacementMicromap;
|
||||
} VkPhysicalDeviceDisplacementMicromapFeaturesNV;
|
||||
|
||||
typedef struct VkPhysicalDeviceDisplacementMicromapPropertiesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t maxDisplacementMicromapSubdivisionLevel;
|
||||
} VkPhysicalDeviceDisplacementMicromapPropertiesNV;
|
||||
|
||||
typedef struct VkAccelerationStructureTrianglesDisplacementMicromapNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkFormat displacementBiasAndScaleFormat;
|
||||
VkFormat displacementVectorFormat;
|
||||
VkDeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer;
|
||||
VkDeviceSize displacementBiasAndScaleStride;
|
||||
VkDeviceOrHostAddressConstKHR displacementVectorBuffer;
|
||||
VkDeviceSize displacementVectorStride;
|
||||
VkDeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags;
|
||||
VkDeviceSize displacedMicromapPrimitiveFlagsStride;
|
||||
VkIndexType indexType;
|
||||
VkDeviceOrHostAddressConstKHR indexBuffer;
|
||||
VkDeviceSize indexStride;
|
||||
uint32_t baseTriangle;
|
||||
uint32_t usageCountsCount;
|
||||
const VkMicromapUsageEXT* pUsageCounts;
|
||||
const VkMicromapUsageEXT* const* ppUsageCounts;
|
||||
VkMicromapEXT micromap;
|
||||
} VkAccelerationStructureTrianglesDisplacementMicromapNV;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Vendored
+648
-23
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_CORE_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -69,7 +69,7 @@ extern "C" {
|
||||
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
|
||||
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 303
|
||||
#define VK_HEADER_VERSION 309
|
||||
|
||||
// Complete version of this file
|
||||
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
|
||||
@@ -1008,7 +1008,6 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
|
||||
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
|
||||
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
|
||||
@@ -1025,6 +1024,9 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
|
||||
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
|
||||
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
|
||||
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
|
||||
@@ -1082,6 +1084,10 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
|
||||
VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
|
||||
VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
|
||||
@@ -1171,6 +1177,20 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
|
||||
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
|
||||
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
|
||||
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
|
||||
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
|
||||
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
|
||||
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
|
||||
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
|
||||
VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
|
||||
VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
|
||||
VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
|
||||
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
|
||||
@@ -1185,17 +1205,34 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
|
||||
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
|
||||
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
|
||||
VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
|
||||
VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
|
||||
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
|
||||
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
|
||||
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
|
||||
VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
|
||||
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
|
||||
VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
|
||||
VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
|
||||
VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
|
||||
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV = 1000613000,
|
||||
#endif
|
||||
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
|
||||
#endif
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
|
||||
// VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a deprecated alias
|
||||
@@ -1405,6 +1442,7 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
|
||||
VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
|
||||
@@ -2260,6 +2298,7 @@ typedef enum VkDescriptorType {
|
||||
VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
|
||||
VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
|
||||
VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
|
||||
VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
|
||||
VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
|
||||
VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
|
||||
VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||
@@ -2716,6 +2755,7 @@ typedef VkFlags VkShaderModuleCreateFlags;
|
||||
|
||||
typedef enum VkPipelineCacheCreateFlagBits {
|
||||
VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
|
||||
VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR = 0x00000008,
|
||||
VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
|
||||
VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkPipelineCacheCreateFlagBits;
|
||||
@@ -2906,6 +2946,7 @@ typedef enum VkDependencyFlagBits {
|
||||
VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
|
||||
VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
|
||||
VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
|
||||
VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020,
|
||||
VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
|
||||
VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
|
||||
VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
@@ -5171,6 +5212,9 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000,
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000,
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000,
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
|
||||
@@ -5954,7 +5998,7 @@ typedef enum VkDriverId {
|
||||
VK_DRIVER_ID_MESA_NVK = 24,
|
||||
VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
|
||||
VK_DRIVER_ID_MESA_HONEYKRISP = 26,
|
||||
VK_DRIVER_ID_RESERVED_27 = 27,
|
||||
VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
|
||||
VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
|
||||
VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
|
||||
VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
|
||||
@@ -6795,6 +6839,7 @@ static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL;
|
||||
|
||||
typedef VkFlags64 VkAccessFlags2;
|
||||
|
||||
@@ -6958,6 +7003,7 @@ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_
|
||||
static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
|
||||
static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
|
||||
static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
|
||||
static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL;
|
||||
static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
|
||||
static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
|
||||
static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
|
||||
@@ -7805,6 +7851,8 @@ static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONL
|
||||
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
|
||||
#endif
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
|
||||
@@ -7837,6 +7885,7 @@ static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
|
||||
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
|
||||
|
||||
@@ -8941,6 +8990,7 @@ typedef enum VkVideoSessionCreateFlagBitsKHR {
|
||||
VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
|
||||
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
|
||||
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
|
||||
VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR = 0x00000020,
|
||||
VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||
} VkVideoSessionCreateFlagBitsKHR;
|
||||
typedef VkFlags VkVideoSessionCreateFlagsKHR;
|
||||
@@ -12127,6 +12177,10 @@ typedef enum VkComponentTypeKHR {
|
||||
VK_COMPONENT_TYPE_UINT16_KHR = 8,
|
||||
VK_COMPONENT_TYPE_UINT32_KHR = 9,
|
||||
VK_COMPONENT_TYPE_UINT64_KHR = 10,
|
||||
VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
|
||||
VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
|
||||
VK_COMPONENT_TYPE_FLOAT_E4M3_NV = 1000491002,
|
||||
VK_COMPONENT_TYPE_FLOAT_E5M2_NV = 1000491003,
|
||||
VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
|
||||
VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
|
||||
VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
|
||||
@@ -12782,6 +12836,76 @@ typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
|
||||
|
||||
|
||||
|
||||
// VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_KHR_maintenance8 1
|
||||
#define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
|
||||
#define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
|
||||
typedef VkFlags64 VkAccessFlags3KHR;
|
||||
|
||||
// Flag bits for VkAccessFlagBits3KHR
|
||||
typedef VkFlags64 VkAccessFlagBits3KHR;
|
||||
static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL;
|
||||
|
||||
typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 maintenance8;
|
||||
} VkPhysicalDeviceMaintenance8FeaturesKHR;
|
||||
|
||||
typedef struct VkMemoryBarrierAccessFlags3KHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkAccessFlags3KHR srcAccessMask3;
|
||||
VkAccessFlags3KHR dstAccessMask3;
|
||||
} VkMemoryBarrierAccessFlags3KHR;
|
||||
|
||||
|
||||
|
||||
// VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_KHR_video_maintenance2 1
|
||||
#define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1
|
||||
#define VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_video_maintenance2"
|
||||
typedef struct VkPhysicalDeviceVideoMaintenance2FeaturesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 videoMaintenance2;
|
||||
} VkPhysicalDeviceVideoMaintenance2FeaturesKHR;
|
||||
|
||||
typedef struct VkVideoDecodeH264InlineSessionParametersInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const StdVideoH264SequenceParameterSet* pStdSPS;
|
||||
const StdVideoH264PictureParameterSet* pStdPPS;
|
||||
} VkVideoDecodeH264InlineSessionParametersInfoKHR;
|
||||
|
||||
typedef struct VkVideoDecodeH265InlineSessionParametersInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const StdVideoH265VideoParameterSet* pStdVPS;
|
||||
const StdVideoH265SequenceParameterSet* pStdSPS;
|
||||
const StdVideoH265PictureParameterSet* pStdPPS;
|
||||
} VkVideoDecodeH265InlineSessionParametersInfoKHR;
|
||||
|
||||
typedef struct VkVideoDecodeAV1InlineSessionParametersInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const StdVideoAV1SequenceHeader* pStdSequenceHeader;
|
||||
} VkVideoDecodeAV1InlineSessionParametersInfoKHR;
|
||||
|
||||
|
||||
|
||||
// VK_KHR_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_KHR_depth_clamp_zero_one 1
|
||||
#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
|
||||
#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_KHR_depth_clamp_zero_one"
|
||||
typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 depthClampZeroOne;
|
||||
} VkPhysicalDeviceDepthClampZeroOneFeaturesKHR;
|
||||
|
||||
|
||||
|
||||
// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_EXT_debug_report 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
||||
@@ -14644,6 +14768,8 @@ typedef enum VkGeometryTypeKHR {
|
||||
VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
|
||||
VK_GEOMETRY_TYPE_AABBS_KHR = 1,
|
||||
VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
|
||||
VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004,
|
||||
VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005,
|
||||
VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
|
||||
VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
|
||||
VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||
@@ -18253,6 +18379,7 @@ typedef enum VkOpacityMicromapSpecialIndexEXT {
|
||||
VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
|
||||
VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
|
||||
VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
|
||||
VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
|
||||
VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||
} VkOpacityMicromapSpecialIndexEXT;
|
||||
|
||||
@@ -18684,11 +18811,7 @@ VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
|
||||
#define VK_EXT_depth_clamp_zero_one 1
|
||||
#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
|
||||
#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
|
||||
typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 depthClampZeroOne;
|
||||
} VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
|
||||
typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
|
||||
|
||||
|
||||
|
||||
@@ -18920,6 +19043,61 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
|
||||
#endif
|
||||
|
||||
|
||||
// VK_NV_ray_tracing_linear_swept_spheres is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_NV_ray_tracing_linear_swept_spheres 1
|
||||
#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION 1
|
||||
#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME "VK_NV_ray_tracing_linear_swept_spheres"
|
||||
|
||||
typedef enum VkRayTracingLssIndexingModeNV {
|
||||
VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV = 0,
|
||||
VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV = 1,
|
||||
VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkRayTracingLssIndexingModeNV;
|
||||
|
||||
typedef enum VkRayTracingLssPrimitiveEndCapsModeNV {
|
||||
VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV = 0,
|
||||
VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV = 1,
|
||||
VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkRayTracingLssPrimitiveEndCapsModeNV;
|
||||
typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 spheres;
|
||||
VkBool32 linearSweptSpheres;
|
||||
} VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
|
||||
|
||||
typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkFormat vertexFormat;
|
||||
VkDeviceOrHostAddressConstKHR vertexData;
|
||||
VkDeviceSize vertexStride;
|
||||
VkFormat radiusFormat;
|
||||
VkDeviceOrHostAddressConstKHR radiusData;
|
||||
VkDeviceSize radiusStride;
|
||||
VkIndexType indexType;
|
||||
VkDeviceOrHostAddressConstKHR indexData;
|
||||
VkDeviceSize indexStride;
|
||||
VkRayTracingLssIndexingModeNV indexingMode;
|
||||
VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode;
|
||||
} VkAccelerationStructureGeometryLinearSweptSpheresDataNV;
|
||||
|
||||
typedef struct VkAccelerationStructureGeometrySpheresDataNV {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkFormat vertexFormat;
|
||||
VkDeviceOrHostAddressConstKHR vertexData;
|
||||
VkDeviceSize vertexStride;
|
||||
VkFormat radiusFormat;
|
||||
VkDeviceOrHostAddressConstKHR radiusData;
|
||||
VkDeviceSize radiusStride;
|
||||
VkIndexType indexType;
|
||||
VkDeviceOrHostAddressConstKHR indexData;
|
||||
VkDeviceSize indexStride;
|
||||
} VkAccelerationStructureGeometrySpheresDataNV;
|
||||
|
||||
|
||||
|
||||
// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_NV_linear_color_attachment 1
|
||||
#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
|
||||
@@ -19816,6 +19994,83 @@ typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
|
||||
|
||||
|
||||
|
||||
// VK_NV_cooperative_vector is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_NV_cooperative_vector 1
|
||||
#define VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION 4
|
||||
#define VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_vector"
|
||||
|
||||
typedef enum VkCooperativeVectorMatrixLayoutNV {
|
||||
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV = 0,
|
||||
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV = 1,
|
||||
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV = 2,
|
||||
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV = 3,
|
||||
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkCooperativeVectorMatrixLayoutNV;
|
||||
typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkShaderStageFlags cooperativeVectorSupportedStages;
|
||||
VkBool32 cooperativeVectorTrainingFloat16Accumulation;
|
||||
VkBool32 cooperativeVectorTrainingFloat32Accumulation;
|
||||
uint32_t maxCooperativeVectorComponents;
|
||||
} VkPhysicalDeviceCooperativeVectorPropertiesNV;
|
||||
|
||||
typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 cooperativeVector;
|
||||
VkBool32 cooperativeVectorTraining;
|
||||
} VkPhysicalDeviceCooperativeVectorFeaturesNV;
|
||||
|
||||
typedef struct VkCooperativeVectorPropertiesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkComponentTypeKHR inputType;
|
||||
VkComponentTypeKHR inputInterpretation;
|
||||
VkComponentTypeKHR matrixInterpretation;
|
||||
VkComponentTypeKHR biasInterpretation;
|
||||
VkComponentTypeKHR resultType;
|
||||
VkBool32 transpose;
|
||||
} VkCooperativeVectorPropertiesNV;
|
||||
|
||||
typedef struct VkConvertCooperativeVectorMatrixInfoNV {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
size_t srcSize;
|
||||
VkDeviceOrHostAddressConstKHR srcData;
|
||||
size_t* pDstSize;
|
||||
VkDeviceOrHostAddressKHR dstData;
|
||||
VkComponentTypeKHR srcComponentType;
|
||||
VkComponentTypeKHR dstComponentType;
|
||||
uint32_t numRows;
|
||||
uint32_t numColumns;
|
||||
VkCooperativeVectorMatrixLayoutNV srcLayout;
|
||||
size_t srcStride;
|
||||
VkCooperativeVectorMatrixLayoutNV dstLayout;
|
||||
size_t dstStride;
|
||||
} VkConvertCooperativeVectorMatrixInfoNV;
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkConvertCooperativeVectorMatrixNV)(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdConvertCooperativeVectorMatrixNV)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t* pPropertyCount,
|
||||
VkCooperativeVectorPropertiesNV* pProperties);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkConvertCooperativeVectorMatrixNV(
|
||||
VkDevice device,
|
||||
const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdConvertCooperativeVectorMatrixNV(
|
||||
VkCommandBuffer commandBuffer,
|
||||
uint32_t infoCount,
|
||||
const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
|
||||
#endif
|
||||
|
||||
|
||||
// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_NV_extended_sparse_address_space 1
|
||||
#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
|
||||
@@ -20330,6 +20585,359 @@ typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
|
||||
|
||||
|
||||
|
||||
// VK_NV_cluster_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_NV_cluster_acceleration_structure 1
|
||||
#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION 2
|
||||
#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_cluster_acceleration_structure"
|
||||
|
||||
typedef enum VkClusterAccelerationStructureTypeNV {
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV = 0,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV = 1,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV = 2,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkClusterAccelerationStructureTypeNV;
|
||||
|
||||
typedef enum VkClusterAccelerationStructureOpTypeNV {
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV = 0,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV = 1,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV = 2,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV = 3,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV = 4,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkClusterAccelerationStructureOpTypeNV;
|
||||
|
||||
typedef enum VkClusterAccelerationStructureOpModeNV {
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV = 0,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV = 1,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV = 2,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkClusterAccelerationStructureOpModeNV;
|
||||
|
||||
typedef enum VkClusterAccelerationStructureAddressResolutionFlagBitsNV {
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV = 0x00000001,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV = 0x00000002,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV = 0x00000004,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV = 0x00000008,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV = 0x00000010,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV = 0x00000020,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkClusterAccelerationStructureAddressResolutionFlagBitsNV;
|
||||
typedef VkFlags VkClusterAccelerationStructureAddressResolutionFlagsNV;
|
||||
|
||||
typedef enum VkClusterAccelerationStructureClusterFlagBitsNV {
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV = 0x00000001,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkClusterAccelerationStructureClusterFlagBitsNV;
|
||||
typedef VkFlags VkClusterAccelerationStructureClusterFlagsNV;
|
||||
|
||||
typedef enum VkClusterAccelerationStructureGeometryFlagBitsNV {
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV = 0x00000001,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV = 0x00000002,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV = 0x00000004,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkClusterAccelerationStructureGeometryFlagBitsNV;
|
||||
typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV;
|
||||
|
||||
typedef enum VkClusterAccelerationStructureIndexFormatFlagBitsNV {
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV = 0x00000001,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV = 0x00000002,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV = 0x00000004,
|
||||
VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkClusterAccelerationStructureIndexFormatFlagBitsNV;
|
||||
typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV;
|
||||
typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 clusterAccelerationStructure;
|
||||
} VkPhysicalDeviceClusterAccelerationStructureFeaturesNV;
|
||||
|
||||
typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t maxVerticesPerCluster;
|
||||
uint32_t maxTrianglesPerCluster;
|
||||
uint32_t clusterScratchByteAlignment;
|
||||
uint32_t clusterByteAlignment;
|
||||
uint32_t clusterTemplateByteAlignment;
|
||||
uint32_t clusterBottomLevelByteAlignment;
|
||||
uint32_t clusterTemplateBoundsByteAlignment;
|
||||
uint32_t maxClusterGeometryIndex;
|
||||
} VkPhysicalDeviceClusterAccelerationStructurePropertiesNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t maxTotalClusterCount;
|
||||
uint32_t maxClusterCountPerAccelerationStructure;
|
||||
} VkClusterAccelerationStructureClustersBottomLevelInputNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureTriangleClusterInputNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkFormat vertexFormat;
|
||||
uint32_t maxGeometryIndexValue;
|
||||
uint32_t maxClusterUniqueGeometryCount;
|
||||
uint32_t maxClusterTriangleCount;
|
||||
uint32_t maxClusterVertexCount;
|
||||
uint32_t maxTotalTriangleCount;
|
||||
uint32_t maxTotalVertexCount;
|
||||
uint32_t minPositionTruncateBitCount;
|
||||
} VkClusterAccelerationStructureTriangleClusterInputNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureMoveObjectsInputNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkClusterAccelerationStructureTypeNV type;
|
||||
VkBool32 noMoveOverlap;
|
||||
VkDeviceSize maxMovedBytes;
|
||||
} VkClusterAccelerationStructureMoveObjectsInputNV;
|
||||
|
||||
typedef union VkClusterAccelerationStructureOpInputNV {
|
||||
VkClusterAccelerationStructureClustersBottomLevelInputNV* pClustersBottomLevel;
|
||||
VkClusterAccelerationStructureTriangleClusterInputNV* pTriangleClusters;
|
||||
VkClusterAccelerationStructureMoveObjectsInputNV* pMoveObjects;
|
||||
} VkClusterAccelerationStructureOpInputNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureInputInfoNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t maxAccelerationStructureCount;
|
||||
VkBuildAccelerationStructureFlagsKHR flags;
|
||||
VkClusterAccelerationStructureOpTypeNV opType;
|
||||
VkClusterAccelerationStructureOpModeNV opMode;
|
||||
VkClusterAccelerationStructureOpInputNV opInput;
|
||||
} VkClusterAccelerationStructureInputInfoNV;
|
||||
|
||||
typedef struct VkStridedDeviceAddressRegionKHR {
|
||||
VkDeviceAddress deviceAddress;
|
||||
VkDeviceSize stride;
|
||||
VkDeviceSize size;
|
||||
} VkStridedDeviceAddressRegionKHR;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureCommandsInfoNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkClusterAccelerationStructureInputInfoNV input;
|
||||
VkDeviceAddress dstImplicitData;
|
||||
VkDeviceAddress scratchData;
|
||||
VkStridedDeviceAddressRegionKHR dstAddressesArray;
|
||||
VkStridedDeviceAddressRegionKHR dstSizesArray;
|
||||
VkStridedDeviceAddressRegionKHR srcInfosArray;
|
||||
VkDeviceAddress srcInfosCount;
|
||||
VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags;
|
||||
} VkClusterAccelerationStructureCommandsInfoNV;
|
||||
|
||||
typedef struct VkStridedDeviceAddressNV {
|
||||
VkDeviceAddress startAddress;
|
||||
VkDeviceSize strideInBytes;
|
||||
} VkStridedDeviceAddressNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
|
||||
uint32_t geometryIndex:24;
|
||||
uint32_t reserved:5;
|
||||
uint32_t geometryFlags:3;
|
||||
} VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV {
|
||||
VkDeviceAddress srcAccelerationStructure;
|
||||
} VkClusterAccelerationStructureMoveObjectsInfoNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
|
||||
uint32_t clusterReferencesCount;
|
||||
uint32_t clusterReferencesStride;
|
||||
VkDeviceAddress clusterReferences;
|
||||
} VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
|
||||
uint32_t clusterID;
|
||||
VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
|
||||
uint32_t triangleCount:9;
|
||||
uint32_t vertexCount:9;
|
||||
uint32_t positionTruncateBitCount:6;
|
||||
uint32_t indexType:4;
|
||||
uint32_t opacityMicromapIndexType:4;
|
||||
VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
|
||||
uint16_t indexBufferStride;
|
||||
uint16_t vertexBufferStride;
|
||||
uint16_t geometryIndexAndFlagsBufferStride;
|
||||
uint16_t opacityMicromapIndexBufferStride;
|
||||
VkDeviceAddress indexBuffer;
|
||||
VkDeviceAddress vertexBuffer;
|
||||
VkDeviceAddress geometryIndexAndFlagsBuffer;
|
||||
VkDeviceAddress opacityMicromapArray;
|
||||
VkDeviceAddress opacityMicromapIndexBuffer;
|
||||
} VkClusterAccelerationStructureBuildTriangleClusterInfoNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
|
||||
uint32_t clusterID;
|
||||
VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
|
||||
uint32_t triangleCount:9;
|
||||
uint32_t vertexCount:9;
|
||||
uint32_t positionTruncateBitCount:6;
|
||||
uint32_t indexType:4;
|
||||
uint32_t opacityMicromapIndexType:4;
|
||||
VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
|
||||
uint16_t indexBufferStride;
|
||||
uint16_t vertexBufferStride;
|
||||
uint16_t geometryIndexAndFlagsBufferStride;
|
||||
uint16_t opacityMicromapIndexBufferStride;
|
||||
VkDeviceAddress indexBuffer;
|
||||
VkDeviceAddress vertexBuffer;
|
||||
VkDeviceAddress geometryIndexAndFlagsBuffer;
|
||||
VkDeviceAddress opacityMicromapArray;
|
||||
VkDeviceAddress opacityMicromapIndexBuffer;
|
||||
VkDeviceAddress instantiationBoundingBoxLimit;
|
||||
} VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV;
|
||||
|
||||
typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV {
|
||||
uint32_t clusterIdOffset;
|
||||
uint32_t geometryIndexOffset:24;
|
||||
uint32_t reserved:8;
|
||||
VkDeviceAddress clusterTemplateAddress;
|
||||
VkStridedDeviceAddressNV vertexBuffer;
|
||||
} VkClusterAccelerationStructureInstantiateClusterInfoNV;
|
||||
|
||||
typedef struct VkAccelerationStructureBuildSizesInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkDeviceSize accelerationStructureSize;
|
||||
VkDeviceSize updateScratchSize;
|
||||
VkDeviceSize buildScratchSize;
|
||||
} VkAccelerationStructureBuildSizesInfoKHR;
|
||||
|
||||
typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 allowClusterAccelerationStructure;
|
||||
} VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV;
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkGetClusterAccelerationStructureBuildSizesNV)(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)(VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkGetClusterAccelerationStructureBuildSizesNV(
|
||||
VkDevice device,
|
||||
const VkClusterAccelerationStructureInputInfoNV* pInfo,
|
||||
VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdBuildClusterAccelerationStructureIndirectNV(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
|
||||
#endif
|
||||
|
||||
|
||||
// VK_NV_partitioned_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_NV_partitioned_acceleration_structure 1
|
||||
#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION 1
|
||||
#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_partitioned_acceleration_structure"
|
||||
#define VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV (~0U)
|
||||
|
||||
typedef enum VkPartitionedAccelerationStructureOpTypeNV {
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV = 0,
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV = 1,
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV = 2,
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkPartitionedAccelerationStructureOpTypeNV;
|
||||
|
||||
typedef enum VkPartitionedAccelerationStructureInstanceFlagBitsNV {
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV = 0x00000001,
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV = 0x00000002,
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV = 0x00000004,
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV = 0x00000010,
|
||||
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkPartitionedAccelerationStructureInstanceFlagBitsNV;
|
||||
typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV;
|
||||
typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 partitionedAccelerationStructure;
|
||||
} VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV;
|
||||
|
||||
typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t maxPartitionCount;
|
||||
} VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV;
|
||||
|
||||
typedef struct VkPartitionedAccelerationStructureFlagsNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 enablePartitionTranslation;
|
||||
} VkPartitionedAccelerationStructureFlagsNV;
|
||||
|
||||
typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV {
|
||||
VkPartitionedAccelerationStructureOpTypeNV opType;
|
||||
uint32_t argCount;
|
||||
VkStridedDeviceAddressNV argData;
|
||||
} VkBuildPartitionedAccelerationStructureIndirectCommandNV;
|
||||
|
||||
typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV {
|
||||
VkTransformMatrixKHR transform;
|
||||
float explicitAABB[6];
|
||||
uint32_t instanceID;
|
||||
uint32_t instanceMask;
|
||||
uint32_t instanceContributionToHitGroupIndex;
|
||||
VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags;
|
||||
uint32_t instanceIndex;
|
||||
uint32_t partitionIndex;
|
||||
VkDeviceAddress accelerationStructure;
|
||||
} VkPartitionedAccelerationStructureWriteInstanceDataNV;
|
||||
|
||||
typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
|
||||
uint32_t instanceIndex;
|
||||
uint32_t instanceContributionToHitGroupIndex;
|
||||
VkDeviceAddress accelerationStructure;
|
||||
} VkPartitionedAccelerationStructureUpdateInstanceDataNV;
|
||||
|
||||
typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV {
|
||||
uint32_t partitionIndex;
|
||||
float partitionTranslation[3];
|
||||
} VkPartitionedAccelerationStructureWritePartitionTranslationDataNV;
|
||||
|
||||
typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t accelerationStructureCount;
|
||||
const VkDeviceAddress* pAccelerationStructures;
|
||||
} VkWriteDescriptorSetPartitionedAccelerationStructureNV;
|
||||
|
||||
typedef struct VkPartitionedAccelerationStructureInstancesInputNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBuildAccelerationStructureFlagsKHR flags;
|
||||
uint32_t instanceCount;
|
||||
uint32_t maxInstancePerPartitionCount;
|
||||
uint32_t partitionCount;
|
||||
uint32_t maxInstanceInGlobalPartitionCount;
|
||||
} VkPartitionedAccelerationStructureInstancesInputNV;
|
||||
|
||||
typedef struct VkBuildPartitionedAccelerationStructureInfoNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkPartitionedAccelerationStructureInstancesInputNV input;
|
||||
VkDeviceAddress srcAccelerationStructureData;
|
||||
VkDeviceAddress dstAccelerationStructureData;
|
||||
VkDeviceAddress scratchData;
|
||||
VkDeviceAddress srcInfos;
|
||||
VkDeviceAddress srcInfosCount;
|
||||
} VkBuildPartitionedAccelerationStructureInfoNV;
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdBuildPartitionedAccelerationStructuresNV)(VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkGetPartitionedAccelerationStructuresBuildSizesNV(
|
||||
VkDevice device,
|
||||
const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
|
||||
VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdBuildPartitionedAccelerationStructuresNV(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
|
||||
#endif
|
||||
|
||||
|
||||
// VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_EXT_device_generated_commands 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
|
||||
@@ -20721,6 +21329,18 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimen
|
||||
#endif
|
||||
|
||||
|
||||
// VK_ARM_pipeline_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_ARM_pipeline_opacity_micromap 1
|
||||
#define VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION 1
|
||||
#define VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME "VK_ARM_pipeline_opacity_micromap"
|
||||
typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 pipelineOpacityMicromap;
|
||||
} VkPhysicalDevicePipelineOpacityMicromapFeaturesARM;
|
||||
|
||||
|
||||
|
||||
// VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_EXT_vertex_attribute_robustness 1
|
||||
#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
|
||||
@@ -20733,6 +21353,25 @@ typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
|
||||
|
||||
|
||||
|
||||
// VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_NV_present_metering 1
|
||||
#define VK_NV_PRESENT_METERING_SPEC_VERSION 1
|
||||
#define VK_NV_PRESENT_METERING_EXTENSION_NAME "VK_NV_present_metering"
|
||||
typedef struct VkSetPresentConfigNV {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t numFramesPerBatch;
|
||||
uint32_t presentConfigFeedback;
|
||||
} VkSetPresentConfigNV;
|
||||
|
||||
typedef struct VkPhysicalDevicePresentMeteringFeaturesNV {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 presentMetering;
|
||||
} VkPhysicalDevicePresentMeteringFeaturesNV;
|
||||
|
||||
|
||||
|
||||
// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_KHR_acceleration_structure 1
|
||||
#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
|
||||
@@ -20889,14 +21528,6 @@ typedef struct VkCopyAccelerationStructureInfoKHR {
|
||||
VkCopyAccelerationStructureModeKHR mode;
|
||||
} VkCopyAccelerationStructureInfoKHR;
|
||||
|
||||
typedef struct VkAccelerationStructureBuildSizesInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkDeviceSize accelerationStructureSize;
|
||||
VkDeviceSize updateScratchSize;
|
||||
VkDeviceSize buildScratchSize;
|
||||
} VkAccelerationStructureBuildSizesInfoKHR;
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
|
||||
typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
|
||||
@@ -21079,12 +21710,6 @@ typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
|
||||
uint32_t maxRayHitAttributeSize;
|
||||
} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
|
||||
|
||||
typedef struct VkStridedDeviceAddressRegionKHR {
|
||||
VkDeviceAddress deviceAddress;
|
||||
VkDeviceSize stride;
|
||||
VkDeviceSize size;
|
||||
} VkStridedDeviceAddressRegionKHR;
|
||||
|
||||
typedef struct VkTraceRaysIndirectCommandKHR {
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_IOS_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_MACOS_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Vendored
+42
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_METAL_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -188,6 +188,47 @@ VKAPI_ATTR void VKAPI_CALL vkExportMetalObjectsEXT(
|
||||
VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
|
||||
#endif
|
||||
|
||||
|
||||
// VK_EXT_external_memory_metal is a preprocessor guard. Do not pass it to API calls.
|
||||
#define VK_EXT_external_memory_metal 1
|
||||
#define VK_EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION 1
|
||||
#define VK_EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME "VK_EXT_external_memory_metal"
|
||||
typedef struct VkImportMemoryMetalHandleInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkExternalMemoryHandleTypeFlagBits handleType;
|
||||
void* handle;
|
||||
} VkImportMemoryMetalHandleInfoEXT;
|
||||
|
||||
typedef struct VkMemoryMetalHandlePropertiesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t memoryTypeBits;
|
||||
} VkMemoryMetalHandlePropertiesEXT;
|
||||
|
||||
typedef struct VkMemoryGetMetalHandleInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkDeviceMemory memory;
|
||||
VkExternalMemoryHandleTypeFlagBits handleType;
|
||||
} VkMemoryGetMetalHandleInfoEXT;
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryMetalHandleEXT)(VkDevice device, const VkMemoryGetMetalHandleInfoEXT* pGetMetalHandleInfo, void** pHandle);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryMetalHandlePropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHandle, VkMemoryMetalHandlePropertiesEXT* pMemoryMetalHandleProperties);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryMetalHandleEXT(
|
||||
VkDevice device,
|
||||
const VkMemoryGetMetalHandleInfoEXT* pGetMetalHandleInfo,
|
||||
void** pHandle);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryMetalHandlePropertiesEXT(
|
||||
VkDevice device,
|
||||
VkExternalMemoryHandleTypeFlagBits handleType,
|
||||
const void* pHandle,
|
||||
VkMemoryMetalHandlePropertiesEXT* pMemoryMetalHandleProperties);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_H264STD_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_H265STD_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_WAYLAND_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_WIN32_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_XCB_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_XLIB_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright 2015-2024 The Khronos Group Inc.
|
||||
** Copyright 2015-2025 The Khronos Group Inc.
|
||||
**
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
Vendored
+37
-1
@@ -71,7 +71,7 @@ VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H265_ENCODE_AP
|
||||
MAKE_VIDEO_STD_VERSION :: MAKE_VERSION
|
||||
|
||||
// General Constants
|
||||
HEADER_VERSION :: 303
|
||||
HEADER_VERSION :: 309
|
||||
MAX_DRIVER_NAME_SIZE :: 256
|
||||
MAX_DRIVER_INFO_SIZE :: 256
|
||||
|
||||
@@ -481,6 +481,15 @@ KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME :: "VK_KHR_shader_rela
|
||||
KHR_maintenance7 :: 1
|
||||
KHR_MAINTENANCE_7_SPEC_VERSION :: 1
|
||||
KHR_MAINTENANCE_7_EXTENSION_NAME :: "VK_KHR_maintenance7"
|
||||
KHR_maintenance8 :: 1
|
||||
KHR_MAINTENANCE_8_SPEC_VERSION :: 1
|
||||
KHR_MAINTENANCE_8_EXTENSION_NAME :: "VK_KHR_maintenance8"
|
||||
KHR_video_maintenance2 :: 1
|
||||
KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION :: 1
|
||||
KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME :: "VK_KHR_video_maintenance2"
|
||||
KHR_depth_clamp_zero_one :: 1
|
||||
KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION :: 1
|
||||
KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME :: "VK_KHR_depth_clamp_zero_one"
|
||||
EXT_debug_report :: 1
|
||||
EXT_DEBUG_REPORT_SPEC_VERSION :: 10
|
||||
EXT_DEBUG_REPORT_EXTENSION_NAME :: "VK_EXT_debug_report"
|
||||
@@ -1008,6 +1017,9 @@ NV_MEMORY_DECOMPRESSION_EXTENSION_NAME :: "VK_NV_memory_decom
|
||||
NV_device_generated_commands_compute :: 1
|
||||
NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION :: 2
|
||||
NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME :: "VK_NV_device_generated_commands_compute"
|
||||
NV_ray_tracing_linear_swept_spheres :: 1
|
||||
NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION :: 1
|
||||
NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME :: "VK_NV_ray_tracing_linear_swept_spheres"
|
||||
NV_linear_color_attachment :: 1
|
||||
NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION :: 1
|
||||
NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME :: "VK_NV_linear_color_attachment"
|
||||
@@ -1053,6 +1065,9 @@ EXT_SHADER_OBJECT_EXTENSION_NAME :: "VK_EXT_shader_obje
|
||||
NV_ray_tracing_invocation_reorder :: 1
|
||||
NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION :: 1
|
||||
NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME :: "VK_NV_ray_tracing_invocation_reorder"
|
||||
NV_cooperative_vector :: 1
|
||||
NV_COOPERATIVE_VECTOR_SPEC_VERSION :: 4
|
||||
NV_COOPERATIVE_VECTOR_EXTENSION_NAME :: "VK_NV_cooperative_vector"
|
||||
NV_extended_sparse_address_space :: 1
|
||||
NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION :: 1
|
||||
NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME :: "VK_NV_extended_sparse_address_space"
|
||||
@@ -1101,6 +1116,12 @@ EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME :: "VK_EXT_shader_repl
|
||||
NV_ray_tracing_validation :: 1
|
||||
NV_RAY_TRACING_VALIDATION_SPEC_VERSION :: 1
|
||||
NV_RAY_TRACING_VALIDATION_EXTENSION_NAME :: "VK_NV_ray_tracing_validation"
|
||||
NV_cluster_acceleration_structure :: 1
|
||||
NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION :: 2
|
||||
NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME :: "VK_NV_cluster_acceleration_structure"
|
||||
NV_partitioned_acceleration_structure :: 1
|
||||
NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION :: 1
|
||||
NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME :: "VK_NV_partitioned_acceleration_structure"
|
||||
EXT_device_generated_commands :: 1
|
||||
EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION :: 1
|
||||
EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME :: "VK_EXT_device_generated_commands"
|
||||
@@ -1113,6 +1134,9 @@ NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME :: "VK_NV_cooperative_
|
||||
EXT_vertex_attribute_robustness :: 1
|
||||
EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION :: 1
|
||||
EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME :: "VK_EXT_vertex_attribute_robustness"
|
||||
NV_present_metering :: 1
|
||||
NV_PRESENT_METERING_SPEC_VERSION :: 1
|
||||
NV_PRESENT_METERING_EXTENSION_NAME :: "VK_NV_present_metering"
|
||||
KHR_acceleration_structure :: 1
|
||||
KHR_ACCELERATION_STRUCTURE_SPEC_VERSION :: 13
|
||||
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME :: "VK_KHR_acceleration_structure"
|
||||
@@ -1158,6 +1182,9 @@ EXT_METAL_SURFACE_EXTENSION_NAME :: "VK_EXT_metal_surfa
|
||||
EXT_metal_objects :: 1
|
||||
EXT_METAL_OBJECTS_SPEC_VERSION :: 2
|
||||
EXT_METAL_OBJECTS_EXTENSION_NAME :: "VK_EXT_metal_objects"
|
||||
EXT_external_memory_metal :: 1
|
||||
EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION :: 1
|
||||
EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME :: "VK_EXT_external_memory_metal"
|
||||
KHR_wayland_surface :: 1
|
||||
KHR_WAYLAND_SURFACE_SPEC_VERSION :: 6
|
||||
KHR_WAYLAND_SURFACE_EXTENSION_NAME :: "VK_KHR_wayland_surface"
|
||||
@@ -1167,6 +1194,15 @@ KHR_XLIB_SURFACE_EXTENSION_NAME :: "VK_KHR_xlib_surfac
|
||||
KHR_xcb_surface :: 1
|
||||
KHR_XCB_SURFACE_SPEC_VERSION :: 6
|
||||
KHR_XCB_SURFACE_EXTENSION_NAME :: "VK_KHR_xcb_surface"
|
||||
KHR_portability_subset :: 1
|
||||
KHR_PORTABILITY_SUBSET_SPEC_VERSION :: 1
|
||||
KHR_PORTABILITY_SUBSET_EXTENSION_NAME :: "VK_KHR_portability_subset"
|
||||
AMDX_shader_enqueue :: 1
|
||||
AMDX_SHADER_ENQUEUE_SPEC_VERSION :: 2
|
||||
AMDX_SHADER_ENQUEUE_EXTENSION_NAME :: "VK_AMDX_shader_enqueue"
|
||||
NV_displacement_micromap :: 1
|
||||
NV_DISPLACEMENT_MICROMAP_SPEC_VERSION :: 2
|
||||
NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME :: "VK_NV_displacement_micromap"
|
||||
|
||||
// Handles types
|
||||
Instance :: distinct Handle
|
||||
|
||||
Vendored
+244
-104
@@ -304,6 +304,55 @@ ChromaLocation :: enum c.int {
|
||||
MIDPOINT_KHR = MIDPOINT,
|
||||
}
|
||||
|
||||
ClusterAccelerationStructureAddressResolutionFlagsNV :: distinct bit_set[ClusterAccelerationStructureAddressResolutionFlagNV; Flags]
|
||||
ClusterAccelerationStructureAddressResolutionFlagNV :: enum Flags {
|
||||
INDIRECTED_DST_IMPLICIT_DATA = 0,
|
||||
INDIRECTED_SCRATCH_DATA = 1,
|
||||
INDIRECTED_DST_ADDRESS_ARRAY = 2,
|
||||
INDIRECTED_DST_SIZES_ARRAY = 3,
|
||||
INDIRECTED_SRC_INFOS_ARRAY = 4,
|
||||
INDIRECTED_SRC_INFOS_COUNT = 5,
|
||||
}
|
||||
|
||||
ClusterAccelerationStructureClusterFlagsNV :: distinct bit_set[ClusterAccelerationStructureClusterFlagNV; Flags]
|
||||
ClusterAccelerationStructureClusterFlagNV :: enum Flags {
|
||||
ALLOW_DISABLE_OPACITY_MICROMAPS = 0,
|
||||
}
|
||||
|
||||
ClusterAccelerationStructureGeometryFlagsNV :: distinct bit_set[ClusterAccelerationStructureGeometryFlagNV; Flags]
|
||||
ClusterAccelerationStructureGeometryFlagNV :: enum Flags {
|
||||
CULL_DISABLE = 0,
|
||||
NO_DUPLICATE_ANYHIT_INVOCATION = 1,
|
||||
OPAQUE = 2,
|
||||
}
|
||||
|
||||
ClusterAccelerationStructureIndexFormatFlagsNV :: distinct bit_set[ClusterAccelerationStructureIndexFormatFlagNV; Flags]
|
||||
ClusterAccelerationStructureIndexFormatFlagNV :: enum Flags {
|
||||
_8BIT = 0,
|
||||
_16BIT = 1,
|
||||
_32BIT = 2,
|
||||
}
|
||||
|
||||
ClusterAccelerationStructureOpModeNV :: enum c.int {
|
||||
IMPLICIT_DESTINATIONS = 0,
|
||||
EXPLICIT_DESTINATIONS = 1,
|
||||
COMPUTE_SIZES = 2,
|
||||
}
|
||||
|
||||
ClusterAccelerationStructureOpTypeNV :: enum c.int {
|
||||
MOVE_OBJECTS = 0,
|
||||
BUILD_CLUSTERS_BOTTOM_LEVEL = 1,
|
||||
BUILD_TRIANGLE_CLUSTER = 2,
|
||||
BUILD_TRIANGLE_CLUSTER_TEMPLATE = 3,
|
||||
INSTANTIATE_TRIANGLE_CLUSTER = 4,
|
||||
}
|
||||
|
||||
ClusterAccelerationStructureTypeNV :: enum c.int {
|
||||
CLUSTERS_BOTTOM_LEVEL = 0,
|
||||
TRIANGLE_CLUSTER = 1,
|
||||
TRIANGLE_CLUSTER_TEMPLATE = 2,
|
||||
}
|
||||
|
||||
CoarseSampleOrderTypeNV :: enum c.int {
|
||||
DEFAULT = 0,
|
||||
CUSTOM = 1,
|
||||
@@ -391,28 +440,32 @@ ComponentSwizzle :: enum c.int {
|
||||
}
|
||||
|
||||
ComponentTypeKHR :: enum c.int {
|
||||
FLOAT16 = 0,
|
||||
FLOAT32 = 1,
|
||||
FLOAT64 = 2,
|
||||
SINT8 = 3,
|
||||
SINT16 = 4,
|
||||
SINT32 = 5,
|
||||
SINT64 = 6,
|
||||
UINT8 = 7,
|
||||
UINT16 = 8,
|
||||
UINT32 = 9,
|
||||
UINT64 = 10,
|
||||
FLOAT16_NV = FLOAT16,
|
||||
FLOAT32_NV = FLOAT32,
|
||||
FLOAT64_NV = FLOAT64,
|
||||
SINT8_NV = SINT8,
|
||||
SINT16_NV = SINT16,
|
||||
SINT32_NV = SINT32,
|
||||
SINT64_NV = SINT64,
|
||||
UINT8_NV = UINT8,
|
||||
UINT16_NV = UINT16,
|
||||
UINT32_NV = UINT32,
|
||||
UINT64_NV = UINT64,
|
||||
FLOAT16 = 0,
|
||||
FLOAT32 = 1,
|
||||
FLOAT64 = 2,
|
||||
SINT8 = 3,
|
||||
SINT16 = 4,
|
||||
SINT32 = 5,
|
||||
SINT64 = 6,
|
||||
UINT8 = 7,
|
||||
UINT16 = 8,
|
||||
UINT32 = 9,
|
||||
UINT64 = 10,
|
||||
SINT8_PACKED_NV = 1000491000,
|
||||
UINT8_PACKED_NV = 1000491001,
|
||||
FLOAT_E4M3_NV = 1000491002,
|
||||
FLOAT_E5M2_NV = 1000491003,
|
||||
FLOAT16_NV = FLOAT16,
|
||||
FLOAT32_NV = FLOAT32,
|
||||
FLOAT64_NV = FLOAT64,
|
||||
SINT8_NV = SINT8,
|
||||
SINT16_NV = SINT16,
|
||||
SINT32_NV = SINT32,
|
||||
SINT64_NV = SINT64,
|
||||
UINT8_NV = UINT8,
|
||||
UINT16_NV = UINT16,
|
||||
UINT32_NV = UINT32,
|
||||
UINT64_NV = UINT64,
|
||||
}
|
||||
|
||||
CompositeAlphaFlagsKHR :: distinct bit_set[CompositeAlphaFlagKHR; Flags]
|
||||
@@ -434,6 +487,13 @@ ConservativeRasterizationModeEXT :: enum c.int {
|
||||
UNDERESTIMATE = 2,
|
||||
}
|
||||
|
||||
CooperativeVectorMatrixLayoutNV :: enum c.int {
|
||||
ROW_MAJOR = 0,
|
||||
COLUMN_MAJOR = 1,
|
||||
INFERENCING_OPTIMAL = 2,
|
||||
TRAINING_OPTIMAL = 3,
|
||||
}
|
||||
|
||||
CopyAccelerationStructureModeKHR :: enum c.int {
|
||||
CLONE = 0,
|
||||
COMPACT = 1,
|
||||
@@ -554,12 +614,13 @@ DebugUtilsMessageTypeFlagEXT :: enum Flags {
|
||||
|
||||
DependencyFlags :: distinct bit_set[DependencyFlag; Flags]
|
||||
DependencyFlag :: enum Flags {
|
||||
BY_REGION = 0,
|
||||
DEVICE_GROUP = 2,
|
||||
VIEW_LOCAL = 1,
|
||||
FEEDBACK_LOOP_EXT = 3,
|
||||
VIEW_LOCAL_KHR = VIEW_LOCAL,
|
||||
DEVICE_GROUP_KHR = DEVICE_GROUP,
|
||||
BY_REGION = 0,
|
||||
DEVICE_GROUP = 2,
|
||||
VIEW_LOCAL = 1,
|
||||
FEEDBACK_LOOP_EXT = 3,
|
||||
QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_KHR = 5,
|
||||
VIEW_LOCAL_KHR = VIEW_LOCAL,
|
||||
DEVICE_GROUP_KHR = DEVICE_GROUP,
|
||||
}
|
||||
|
||||
DepthBiasRepresentationEXT :: enum c.int {
|
||||
@@ -611,25 +672,26 @@ DescriptorSetLayoutCreateFlag :: enum Flags {
|
||||
}
|
||||
|
||||
DescriptorType :: enum c.int {
|
||||
SAMPLER = 0,
|
||||
COMBINED_IMAGE_SAMPLER = 1,
|
||||
SAMPLED_IMAGE = 2,
|
||||
STORAGE_IMAGE = 3,
|
||||
UNIFORM_TEXEL_BUFFER = 4,
|
||||
STORAGE_TEXEL_BUFFER = 5,
|
||||
UNIFORM_BUFFER = 6,
|
||||
STORAGE_BUFFER = 7,
|
||||
UNIFORM_BUFFER_DYNAMIC = 8,
|
||||
STORAGE_BUFFER_DYNAMIC = 9,
|
||||
INPUT_ATTACHMENT = 10,
|
||||
INLINE_UNIFORM_BLOCK = 1000138000,
|
||||
ACCELERATION_STRUCTURE_KHR = 1000150000,
|
||||
ACCELERATION_STRUCTURE_NV = 1000165000,
|
||||
SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
|
||||
BLOCK_MATCH_IMAGE_QCOM = 1000440001,
|
||||
MUTABLE_EXT = 1000351000,
|
||||
INLINE_UNIFORM_BLOCK_EXT = INLINE_UNIFORM_BLOCK,
|
||||
MUTABLE_VALVE = MUTABLE_EXT,
|
||||
SAMPLER = 0,
|
||||
COMBINED_IMAGE_SAMPLER = 1,
|
||||
SAMPLED_IMAGE = 2,
|
||||
STORAGE_IMAGE = 3,
|
||||
UNIFORM_TEXEL_BUFFER = 4,
|
||||
STORAGE_TEXEL_BUFFER = 5,
|
||||
UNIFORM_BUFFER = 6,
|
||||
STORAGE_BUFFER = 7,
|
||||
UNIFORM_BUFFER_DYNAMIC = 8,
|
||||
STORAGE_BUFFER_DYNAMIC = 9,
|
||||
INPUT_ATTACHMENT = 10,
|
||||
INLINE_UNIFORM_BLOCK = 1000138000,
|
||||
ACCELERATION_STRUCTURE_KHR = 1000150000,
|
||||
ACCELERATION_STRUCTURE_NV = 1000165000,
|
||||
SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
|
||||
BLOCK_MATCH_IMAGE_QCOM = 1000440001,
|
||||
MUTABLE_EXT = 1000351000,
|
||||
PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
|
||||
INLINE_UNIFORM_BLOCK_EXT = INLINE_UNIFORM_BLOCK,
|
||||
MUTABLE_VALVE = MUTABLE_EXT,
|
||||
}
|
||||
|
||||
DescriptorUpdateTemplateType :: enum c.int {
|
||||
@@ -706,6 +768,12 @@ DiscardRectangleModeEXT :: enum c.int {
|
||||
EXCLUSIVE = 1,
|
||||
}
|
||||
|
||||
DisplacementMicromapFormatNV :: enum c.int {
|
||||
_64_TRIANGLES_64_BYTES = 1,
|
||||
_256_TRIANGLES_128_BYTES = 2,
|
||||
_1024_TRIANGLES_128_BYTES = 3,
|
||||
}
|
||||
|
||||
DisplayEventTypeEXT :: enum c.int {
|
||||
FIRST_PIXEL_OUT = 0,
|
||||
}
|
||||
@@ -758,7 +826,7 @@ DriverId :: enum c.int {
|
||||
MESA_NVK = 24,
|
||||
IMAGINATION_OPEN_SOURCE_MESA = 25,
|
||||
MESA_HONEYKRISP = 26,
|
||||
RESERVED_27 = 27,
|
||||
VULKAN_SC_EMULATION_ON_VULKAN = 27,
|
||||
AMD_PROPRIETARY_KHR = AMD_PROPRIETARY,
|
||||
AMD_OPEN_SOURCE_KHR = AMD_OPEN_SOURCE,
|
||||
MESA_RADV_KHR = MESA_RADV,
|
||||
@@ -935,6 +1003,9 @@ ExternalMemoryHandleTypeFlag :: enum Flags {
|
||||
ZIRCON_VMO_FUCHSIA = 11,
|
||||
RDMA_ADDRESS_NV = 12,
|
||||
SCREEN_BUFFER_QNX = 14,
|
||||
MTLBUFFER_EXT = 16,
|
||||
MTLTEXTURE_EXT = 17,
|
||||
MTLHEAP_EXT = 18,
|
||||
OPAQUE_FD_KHR = OPAQUE_FD,
|
||||
OPAQUE_WIN32_KHR = OPAQUE_WIN32,
|
||||
OPAQUE_WIN32_KMT_KHR = OPAQUE_WIN32_KMT,
|
||||
@@ -1425,11 +1496,13 @@ GeometryInstanceFlagKHR :: enum Flags {
|
||||
}
|
||||
|
||||
GeometryTypeKHR :: enum c.int {
|
||||
TRIANGLES = 0,
|
||||
AABBS = 1,
|
||||
INSTANCES = 2,
|
||||
TRIANGLES_NV = TRIANGLES,
|
||||
AABBS_NV = AABBS,
|
||||
TRIANGLES = 0,
|
||||
AABBS = 1,
|
||||
INSTANCES = 2,
|
||||
SPHERES_NV = 1000429004,
|
||||
LINEAR_SWEPT_SPHERES_NV = 1000429005,
|
||||
TRIANGLES_NV = TRIANGLES,
|
||||
AABBS_NV = AABBS,
|
||||
}
|
||||
|
||||
GraphicsPipelineLibraryFlagsEXT :: distinct bit_set[GraphicsPipelineLibraryFlagEXT; Flags]
|
||||
@@ -1906,10 +1979,11 @@ OpacityMicromapFormatEXT :: enum c.int {
|
||||
}
|
||||
|
||||
OpacityMicromapSpecialIndexEXT :: enum c.int {
|
||||
FULLY_TRANSPARENT = -1,
|
||||
FULLY_OPAQUE = -2,
|
||||
FULLY_UNKNOWN_TRANSPARENT = -3,
|
||||
FULLY_UNKNOWN_OPAQUE = -4,
|
||||
FULLY_TRANSPARENT = -1,
|
||||
FULLY_OPAQUE = -2,
|
||||
FULLY_UNKNOWN_TRANSPARENT = -3,
|
||||
FULLY_UNKNOWN_OPAQUE = -4,
|
||||
CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
|
||||
}
|
||||
|
||||
OpticalFlowExecuteFlagsNV :: distinct bit_set[OpticalFlowExecuteFlagNV; Flags]
|
||||
@@ -1973,6 +2047,21 @@ OutOfBandQueueTypeNV :: enum c.int {
|
||||
PRESENT = 1,
|
||||
}
|
||||
|
||||
PartitionedAccelerationStructureInstanceFlagsNV :: distinct bit_set[PartitionedAccelerationStructureInstanceFlagNV; Flags]
|
||||
PartitionedAccelerationStructureInstanceFlagNV :: enum Flags {
|
||||
FLAG_TRIANGLE_FACING_CULL_DISABLE = 0,
|
||||
FLAG_TRIANGLE_FLIP_FACING = 1,
|
||||
FLAG_FORCE_OPAQUE = 2,
|
||||
FLAG_FORCE_NO_OPAQUE = 3,
|
||||
FLAG_ENABLE_EXPLICIT_BOUNDING_BOX = 4,
|
||||
}
|
||||
|
||||
PartitionedAccelerationStructureOpTypeNV :: enum c.int {
|
||||
WRITE_INSTANCE = 0,
|
||||
UPDATE_INSTANCE = 1,
|
||||
WRITE_PARTITION_TRANSLATION = 2,
|
||||
}
|
||||
|
||||
PeerMemoryFeatureFlags :: distinct bit_set[PeerMemoryFeatureFlag; Flags]
|
||||
PeerMemoryFeatureFlag :: enum Flags {
|
||||
COPY_SRC = 0,
|
||||
@@ -2072,8 +2161,9 @@ PipelineBindPoint :: enum c.int {
|
||||
|
||||
PipelineCacheCreateFlags :: distinct bit_set[PipelineCacheCreateFlag; Flags]
|
||||
PipelineCacheCreateFlag :: enum Flags {
|
||||
EXTERNALLY_SYNCHRONIZED = 0,
|
||||
EXTERNALLY_SYNCHRONIZED_EXT = EXTERNALLY_SYNCHRONIZED,
|
||||
EXTERNALLY_SYNCHRONIZED = 0,
|
||||
INTERNALLY_SYNCHRONIZED_MERGE_KHR = 3,
|
||||
EXTERNALLY_SYNCHRONIZED_EXT = EXTERNALLY_SYNCHRONIZED,
|
||||
}
|
||||
|
||||
PipelineCacheHeaderVersion :: enum c.int {
|
||||
@@ -2389,6 +2479,16 @@ RayTracingInvocationReorderModeNV :: enum c.int {
|
||||
REORDER = 1,
|
||||
}
|
||||
|
||||
RayTracingLssIndexingModeNV :: enum c.int {
|
||||
LIST = 0,
|
||||
SUCCESSIVE = 1,
|
||||
}
|
||||
|
||||
RayTracingLssPrimitiveEndCapsModeNV :: enum c.int {
|
||||
NONE = 0,
|
||||
CHAINED = 1,
|
||||
}
|
||||
|
||||
RayTracingShaderGroupTypeKHR :: enum c.int {
|
||||
GENERAL = 0,
|
||||
TRIANGLES_HIT_GROUP = 1,
|
||||
@@ -3498,7 +3598,6 @@ StructureType :: enum c.int {
|
||||
PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
|
||||
DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
|
||||
DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
|
||||
PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
|
||||
PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
|
||||
PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
|
||||
PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
|
||||
@@ -3515,6 +3614,9 @@ StructureType :: enum c.int {
|
||||
PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
|
||||
COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
|
||||
PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
|
||||
PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
|
||||
ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
|
||||
ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
|
||||
PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
|
||||
PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
|
||||
PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
|
||||
@@ -3572,6 +3674,10 @@ StructureType :: enum c.int {
|
||||
PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
|
||||
PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
|
||||
PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
|
||||
PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
|
||||
PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
|
||||
COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
|
||||
CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
|
||||
PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
|
||||
PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
|
||||
PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
|
||||
@@ -3661,6 +3767,20 @@ StructureType :: enum c.int {
|
||||
PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
|
||||
PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
|
||||
PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
|
||||
PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
|
||||
PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
|
||||
CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
|
||||
CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
|
||||
CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
|
||||
CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
|
||||
CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
|
||||
RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
|
||||
PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
|
||||
PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
|
||||
WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
|
||||
PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
|
||||
BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
|
||||
PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
|
||||
PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
|
||||
PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
|
||||
GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
|
||||
@@ -3675,17 +3795,30 @@ StructureType :: enum c.int {
|
||||
INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
|
||||
GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
|
||||
GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
|
||||
PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
|
||||
MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
|
||||
PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
|
||||
PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
|
||||
IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
|
||||
PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
|
||||
PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
|
||||
PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
|
||||
VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
|
||||
VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
|
||||
VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
|
||||
PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
|
||||
HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
|
||||
PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
|
||||
COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
|
||||
PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
|
||||
PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
|
||||
IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
|
||||
MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
|
||||
MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
|
||||
PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
|
||||
PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
|
||||
SET_PRESENT_CONFIG_NV = 1000613000,
|
||||
PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
|
||||
PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
|
||||
PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
|
||||
DEBUG_REPORT_CREATE_INFO_EXT = DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
|
||||
@@ -3892,6 +4025,7 @@ StructureType :: enum c.int {
|
||||
DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = DEVICE_BUFFER_MEMORY_REQUIREMENTS,
|
||||
DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = DEVICE_IMAGE_MEMORY_REQUIREMENTS,
|
||||
PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
|
||||
PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
|
||||
PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
|
||||
PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
|
||||
PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
|
||||
@@ -4481,6 +4615,7 @@ VideoSessionCreateFlagKHR :: enum Flags {
|
||||
INLINE_QUERIES = 2,
|
||||
ALLOW_ENCODE_QUANTIZATION_DELTA_MAP = 3,
|
||||
ALLOW_ENCODE_EMPHASIS_MAP = 4,
|
||||
INLINE_SESSION_PARAMETERS = 5,
|
||||
}
|
||||
|
||||
VideoSessionParametersCreateFlagsKHR :: distinct bit_set[VideoSessionParametersCreateFlagKHR; Flags]
|
||||
@@ -4767,6 +4902,7 @@ FormatFeatureFlag2 :: enum Flags64 {
|
||||
SAMPLED_IMAGE_DEPTH_COMPARISON_KHR = 33,
|
||||
SAMPLED_IMAGE_FILTER_MINMAX_KHR = 16,
|
||||
SAMPLED_IMAGE_FILTER_CUBIC_EXT = 13,
|
||||
ACCELERATION_STRUCTURE_RADIUS_BUFFER_NV = 51,
|
||||
LINEAR_COLOR_ATTACHMENT_NV = 38,
|
||||
WEIGHT_IMAGE_QCOM = 34,
|
||||
WEIGHT_SAMPLED_IMAGE_QCOM = 35,
|
||||
@@ -4781,50 +4917,53 @@ FormatFeatureFlag2 :: enum Flags64 {
|
||||
|
||||
PipelineCreateFlags2 :: distinct bit_set[PipelineCreateFlag2; Flags64]
|
||||
PipelineCreateFlag2 :: enum Flags64 {
|
||||
DISABLE_OPTIMIZATION = 0,
|
||||
ALLOW_DERIVATIVES = 1,
|
||||
DERIVATIVE = 2,
|
||||
VIEW_INDEX_FROM_DEVICE_INDEX = 3,
|
||||
DISPATCH_BASE = 4,
|
||||
FAIL_ON_PIPELINE_COMPILE_REQUIRED = 8,
|
||||
EARLY_RETURN_ON_FAILURE = 9,
|
||||
NO_PROTECTED_ACCESS = 27,
|
||||
PROTECTED_ACCESS_ONLY = 30,
|
||||
EXECUTION_GRAPH_AMDX = 32,
|
||||
ENABLE_LEGACY_DITHERING_EXT = 34,
|
||||
DISABLE_OPTIMIZATION_KHR = 0,
|
||||
ALLOW_DERIVATIVES_KHR = 1,
|
||||
DERIVATIVE_KHR = 2,
|
||||
VIEW_INDEX_FROM_DEVICE_INDEX_KHR = 3,
|
||||
DISPATCH_BASE_KHR = 4,
|
||||
DEFER_COMPILE_NV = 5,
|
||||
CAPTURE_STATISTICS_KHR = 6,
|
||||
CAPTURE_INTERNAL_REPRESENTATIONS_KHR = 7,
|
||||
FAIL_ON_PIPELINE_COMPILE_REQUIRED_KHR = 8,
|
||||
EARLY_RETURN_ON_FAILURE_KHR = 9,
|
||||
LINK_TIME_OPTIMIZATION_EXT = 10,
|
||||
RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT = 23,
|
||||
LIBRARY_KHR = 11,
|
||||
RAY_TRACING_SKIP_TRIANGLES_KHR = 12,
|
||||
RAY_TRACING_SKIP_AABBS_KHR = 13,
|
||||
RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR = 14,
|
||||
RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR = 15,
|
||||
RAY_TRACING_NO_NULL_MISS_SHADERS_KHR = 16,
|
||||
RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR = 17,
|
||||
RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR = 19,
|
||||
INDIRECT_BINDABLE_NV = 18,
|
||||
RAY_TRACING_ALLOW_MOTION_NV = 20,
|
||||
RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 21,
|
||||
RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT = 22,
|
||||
RAY_TRACING_OPACITY_MICROMAP_EXT = 24,
|
||||
COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT = 25,
|
||||
DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT = 26,
|
||||
NO_PROTECTED_ACCESS_EXT = 27,
|
||||
PROTECTED_ACCESS_ONLY_EXT = 30,
|
||||
RAY_TRACING_DISPLACEMENT_MICROMAP_NV = 28,
|
||||
DESCRIPTOR_BUFFER_EXT = 29,
|
||||
CAPTURE_DATA_KHR = 31,
|
||||
INDIRECT_BINDABLE_EXT = 38,
|
||||
DISABLE_OPTIMIZATION = 0,
|
||||
ALLOW_DERIVATIVES = 1,
|
||||
DERIVATIVE = 2,
|
||||
VIEW_INDEX_FROM_DEVICE_INDEX = 3,
|
||||
DISPATCH_BASE = 4,
|
||||
FAIL_ON_PIPELINE_COMPILE_REQUIRED = 8,
|
||||
EARLY_RETURN_ON_FAILURE = 9,
|
||||
NO_PROTECTED_ACCESS = 27,
|
||||
PROTECTED_ACCESS_ONLY = 30,
|
||||
EXECUTION_GRAPH_AMDX = 32,
|
||||
RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_KHR = 12,
|
||||
RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_NV = 33,
|
||||
ENABLE_LEGACY_DITHERING_EXT = 34,
|
||||
DISABLE_OPTIMIZATION_KHR = 0,
|
||||
ALLOW_DERIVATIVES_KHR = 1,
|
||||
DERIVATIVE_KHR = 2,
|
||||
VIEW_INDEX_FROM_DEVICE_INDEX_KHR = 3,
|
||||
DISPATCH_BASE_KHR = 4,
|
||||
DEFER_COMPILE_NV = 5,
|
||||
CAPTURE_STATISTICS_KHR = 6,
|
||||
CAPTURE_INTERNAL_REPRESENTATIONS_KHR = 7,
|
||||
FAIL_ON_PIPELINE_COMPILE_REQUIRED_KHR = 8,
|
||||
EARLY_RETURN_ON_FAILURE_KHR = 9,
|
||||
LINK_TIME_OPTIMIZATION_EXT = 10,
|
||||
RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT = 23,
|
||||
LIBRARY_KHR = 11,
|
||||
RAY_TRACING_SKIP_TRIANGLES_KHR = 12,
|
||||
RAY_TRACING_SKIP_AABBS_KHR = 13,
|
||||
RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR = 14,
|
||||
RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR = 15,
|
||||
RAY_TRACING_NO_NULL_MISS_SHADERS_KHR = 16,
|
||||
RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR = 17,
|
||||
RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR = 19,
|
||||
INDIRECT_BINDABLE_NV = 18,
|
||||
RAY_TRACING_ALLOW_MOTION_NV = 20,
|
||||
RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 21,
|
||||
RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT = 22,
|
||||
RAY_TRACING_OPACITY_MICROMAP_EXT = 24,
|
||||
COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT = 25,
|
||||
DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT = 26,
|
||||
NO_PROTECTED_ACCESS_EXT = 27,
|
||||
PROTECTED_ACCESS_ONLY_EXT = 30,
|
||||
RAY_TRACING_DISPLACEMENT_MICROMAP_NV = 28,
|
||||
DESCRIPTOR_BUFFER_EXT = 29,
|
||||
DISALLOW_OPACITY_MICROMAP_ARM = 37,
|
||||
CAPTURE_DATA_KHR = 31,
|
||||
INDIRECT_BINDABLE_EXT = 38,
|
||||
}
|
||||
|
||||
PipelineStageFlags2 :: distinct bit_set[PipelineStageFlag2; Flags64]
|
||||
@@ -4903,6 +5042,7 @@ PipelineStageFlag2 :: enum Flags64 {
|
||||
MICROMAP_BUILD_EXT = 30,
|
||||
CLUSTER_CULLING_SHADER_HUAWEI = 41,
|
||||
OPTICAL_FLOW_NV = 29,
|
||||
CONVERT_COOPERATIVE_VECTOR_MATRIX_NV = 44,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Vendored
+109
@@ -62,6 +62,7 @@ ProcGetPhysicalDeviceCalibrateableTimeDomainsKHR :: #type pr
|
||||
ProcGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV :: #type proc "system" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: [^]CooperativeMatrixFlexibleDimensionsPropertiesNV) -> Result
|
||||
ProcGetPhysicalDeviceCooperativeMatrixPropertiesKHR :: #type proc "system" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: [^]CooperativeMatrixPropertiesKHR) -> Result
|
||||
ProcGetPhysicalDeviceCooperativeMatrixPropertiesNV :: #type proc "system" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: [^]CooperativeMatrixPropertiesNV) -> Result
|
||||
ProcGetPhysicalDeviceCooperativeVectorPropertiesNV :: #type proc "system" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: [^]CooperativeVectorPropertiesNV) -> Result
|
||||
ProcGetPhysicalDeviceDisplayPlaneProperties2KHR :: #type proc "system" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: [^]DisplayPlaneProperties2KHR) -> Result
|
||||
ProcGetPhysicalDeviceDisplayPlanePropertiesKHR :: #type proc "system" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: [^]DisplayPlanePropertiesKHR) -> Result
|
||||
ProcGetPhysicalDeviceDisplayProperties2KHR :: #type proc "system" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: [^]DisplayProperties2KHR) -> Result
|
||||
@@ -178,11 +179,14 @@ ProcCmdBlitImage2KHR :: #type proc "system
|
||||
ProcCmdBuildAccelerationStructureNV :: #type proc "system" (commandBuffer: CommandBuffer, pInfo: ^AccelerationStructureInfoNV, instanceData: Buffer, instanceOffset: DeviceSize, update: b32, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratchOffset: DeviceSize)
|
||||
ProcCmdBuildAccelerationStructuresIndirectKHR :: #type proc "system" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: [^]AccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: [^]DeviceAddress, pIndirectStrides: [^]u32, ppMaxPrimitiveCounts: ^[^]u32)
|
||||
ProcCmdBuildAccelerationStructuresKHR :: #type proc "system" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: [^]AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^[^]AccelerationStructureBuildRangeInfoKHR)
|
||||
ProcCmdBuildClusterAccelerationStructureIndirectNV :: #type proc "system" (commandBuffer: CommandBuffer, pCommandInfos: [^]ClusterAccelerationStructureCommandsInfoNV)
|
||||
ProcCmdBuildMicromapsEXT :: #type proc "system" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: [^]MicromapBuildInfoEXT)
|
||||
ProcCmdBuildPartitionedAccelerationStructuresNV :: #type proc "system" (commandBuffer: CommandBuffer, pBuildInfo: ^BuildPartitionedAccelerationStructureInfoNV)
|
||||
ProcCmdClearAttachments :: #type proc "system" (commandBuffer: CommandBuffer, attachmentCount: u32, pAttachments: [^]ClearAttachment, rectCount: u32, pRects: [^]ClearRect)
|
||||
ProcCmdClearColorImage :: #type proc "system" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pColor: ^ClearColorValue, rangeCount: u32, pRanges: [^]ImageSubresourceRange)
|
||||
ProcCmdClearDepthStencilImage :: #type proc "system" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pDepthStencil: ^ClearDepthStencilValue, rangeCount: u32, pRanges: [^]ImageSubresourceRange)
|
||||
ProcCmdControlVideoCodingKHR :: #type proc "system" (commandBuffer: CommandBuffer, pCodingControlInfo: ^VideoCodingControlInfoKHR)
|
||||
ProcCmdConvertCooperativeVectorMatrixNV :: #type proc "system" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: [^]ConvertCooperativeVectorMatrixInfoNV)
|
||||
ProcCmdCopyAccelerationStructureKHR :: #type proc "system" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureInfoKHR)
|
||||
ProcCmdCopyAccelerationStructureNV :: #type proc "system" (commandBuffer: CommandBuffer, dst: AccelerationStructureNV, src: AccelerationStructureNV, mode: CopyAccelerationStructureModeKHR)
|
||||
ProcCmdCopyAccelerationStructureToMemoryKHR :: #type proc "system" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR)
|
||||
@@ -216,6 +220,9 @@ ProcCmdDecompressMemoryNV :: #type proc "system
|
||||
ProcCmdDispatch :: #type proc "system" (commandBuffer: CommandBuffer, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
|
||||
ProcCmdDispatchBase :: #type proc "system" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
|
||||
ProcCmdDispatchBaseKHR :: #type proc "system" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
|
||||
ProcCmdDispatchGraphAMDX :: #type proc "system" (commandBuffer: CommandBuffer, scratch: DeviceAddress, scratchSize: DeviceSize, pCountInfo: ^DispatchGraphCountInfoAMDX)
|
||||
ProcCmdDispatchGraphIndirectAMDX :: #type proc "system" (commandBuffer: CommandBuffer, scratch: DeviceAddress, scratchSize: DeviceSize, pCountInfo: ^DispatchGraphCountInfoAMDX)
|
||||
ProcCmdDispatchGraphIndirectCountAMDX :: #type proc "system" (commandBuffer: CommandBuffer, scratch: DeviceAddress, scratchSize: DeviceSize, countInfo: DeviceAddress)
|
||||
ProcCmdDispatchIndirect :: #type proc "system" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize)
|
||||
ProcCmdDraw :: #type proc "system" (commandBuffer: CommandBuffer, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32)
|
||||
ProcCmdDrawClusterHUAWEI :: #type proc "system" (commandBuffer: CommandBuffer, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
|
||||
@@ -254,6 +261,7 @@ ProcCmdExecuteCommands :: #type proc "system
|
||||
ProcCmdExecuteGeneratedCommandsEXT :: #type proc "system" (commandBuffer: CommandBuffer, isPreprocessed: b32, pGeneratedCommandsInfo: ^GeneratedCommandsInfoEXT)
|
||||
ProcCmdExecuteGeneratedCommandsNV :: #type proc "system" (commandBuffer: CommandBuffer, isPreprocessed: b32, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV)
|
||||
ProcCmdFillBuffer :: #type proc "system" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, size: DeviceSize, data: u32)
|
||||
ProcCmdInitializeGraphScratchMemoryAMDX :: #type proc "system" (commandBuffer: CommandBuffer, executionGraph: Pipeline, scratch: DeviceAddress, scratchSize: DeviceSize)
|
||||
ProcCmdInsertDebugUtilsLabelEXT :: #type proc "system" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT)
|
||||
ProcCmdNextSubpass :: #type proc "system" (commandBuffer: CommandBuffer, contents: SubpassContents)
|
||||
ProcCmdNextSubpass2 :: #type proc "system" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo)
|
||||
@@ -405,6 +413,7 @@ ProcCmdWriteTimestamp :: #type proc "system
|
||||
ProcCmdWriteTimestamp2 :: #type proc "system" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2, queryPool: QueryPool, query: u32)
|
||||
ProcCmdWriteTimestamp2KHR :: #type proc "system" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2, queryPool: QueryPool, query: u32)
|
||||
ProcCompileDeferredNV :: #type proc "system" (device: Device, pipeline: Pipeline, shader: u32) -> Result
|
||||
ProcConvertCooperativeVectorMatrixNV :: #type proc "system" (device: Device, pInfo: ^ConvertCooperativeVectorMatrixInfoNV) -> Result
|
||||
ProcCopyAccelerationStructureKHR :: #type proc "system" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureInfoKHR) -> Result
|
||||
ProcCopyAccelerationStructureToMemoryKHR :: #type proc "system" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR) -> Result
|
||||
ProcCopyImageToImage :: #type proc "system" (device: Device, pCopyImageToImageInfo: ^CopyImageToImageInfo) -> Result
|
||||
@@ -433,6 +442,7 @@ ProcCreateDescriptorSetLayout :: #type proc "system
|
||||
ProcCreateDescriptorUpdateTemplate :: #type proc "system" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result
|
||||
ProcCreateDescriptorUpdateTemplateKHR :: #type proc "system" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result
|
||||
ProcCreateEvent :: #type proc "system" (device: Device, pCreateInfo: ^EventCreateInfo, pAllocator: ^AllocationCallbacks, pEvent: ^Event) -> Result
|
||||
ProcCreateExecutionGraphPipelinesAMDX :: #type proc "system" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: [^]ExecutionGraphPipelineCreateInfoAMDX, pAllocator: ^AllocationCallbacks, pPipelines: [^]Pipeline) -> Result
|
||||
ProcCreateFence :: #type proc "system" (device: Device, pCreateInfo: ^FenceCreateInfo, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result
|
||||
ProcCreateFramebuffer :: #type proc "system" (device: Device, pCreateInfo: ^FramebufferCreateInfo, pAllocator: ^AllocationCallbacks, pFramebuffer: ^Framebuffer) -> Result
|
||||
ProcCreateGraphicsPipelines :: #type proc "system" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: [^]GraphicsPipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: [^]Pipeline) -> Result
|
||||
@@ -535,6 +545,7 @@ ProcGetBufferOpaqueCaptureAddressKHR :: #type proc "system
|
||||
ProcGetBufferOpaqueCaptureDescriptorDataEXT :: #type proc "system" (device: Device, pInfo: ^BufferCaptureDescriptorDataInfoEXT, pData: rawptr) -> Result
|
||||
ProcGetCalibratedTimestampsEXT :: #type proc "system" (device: Device, timestampCount: u32, pTimestampInfos: [^]CalibratedTimestampInfoKHR, pTimestamps: [^]u64, pMaxDeviation: ^u64) -> Result
|
||||
ProcGetCalibratedTimestampsKHR :: #type proc "system" (device: Device, timestampCount: u32, pTimestampInfos: [^]CalibratedTimestampInfoKHR, pTimestamps: [^]u64, pMaxDeviation: ^u64) -> Result
|
||||
ProcGetClusterAccelerationStructureBuildSizesNV :: #type proc "system" (device: Device, pInfo: ^ClusterAccelerationStructureInputInfoNV, pSizeInfo: ^AccelerationStructureBuildSizesInfoKHR)
|
||||
ProcGetCudaModuleCacheNV :: #type proc "system" (device: Device, module: CudaModuleNV, pCacheSize: ^int, pCacheData: rawptr) -> Result
|
||||
ProcGetDeferredOperationMaxConcurrencyKHR :: #type proc "system" (device: Device, operation: DeferredOperationKHR) -> u32
|
||||
ProcGetDeferredOperationResultKHR :: #type proc "system" (device: Device, operation: DeferredOperationKHR) -> Result
|
||||
@@ -571,6 +582,8 @@ ProcGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI :: #type proc "system
|
||||
ProcGetDynamicRenderingTilePropertiesQCOM :: #type proc "system" (device: Device, pRenderingInfo: ^RenderingInfo, pProperties: [^]TilePropertiesQCOM) -> Result
|
||||
ProcGetEncodedVideoSessionParametersKHR :: #type proc "system" (device: Device, pVideoSessionParametersInfo: ^VideoEncodeSessionParametersGetInfoKHR, pFeedbackInfo: ^VideoEncodeSessionParametersFeedbackInfoKHR, pDataSize: ^int, pData: rawptr) -> Result
|
||||
ProcGetEventStatus :: #type proc "system" (device: Device, event: Event) -> Result
|
||||
ProcGetExecutionGraphPipelineNodeIndexAMDX :: #type proc "system" (device: Device, executionGraph: Pipeline, pNodeInfo: ^PipelineShaderStageNodeCreateInfoAMDX, pNodeIndex: ^u32) -> Result
|
||||
ProcGetExecutionGraphPipelineScratchSizeAMDX :: #type proc "system" (device: Device, executionGraph: Pipeline, pSizeInfo: ^ExecutionGraphPipelineScratchSizeAMDX) -> Result
|
||||
ProcGetFenceFdKHR :: #type proc "system" (device: Device, pGetFdInfo: ^FenceGetFdInfoKHR, pFd: ^c.int) -> Result
|
||||
ProcGetFenceStatus :: #type proc "system" (device: Device, fence: Fence) -> Result
|
||||
ProcGetFenceWin32HandleKHR :: #type proc "system" (device: Device, pGetWin32HandleInfo: ^FenceGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result
|
||||
@@ -597,11 +610,14 @@ ProcGetLatencyTimingsNV :: #type proc "system
|
||||
ProcGetMemoryFdKHR :: #type proc "system" (device: Device, pGetFdInfo: ^MemoryGetFdInfoKHR, pFd: ^c.int) -> Result
|
||||
ProcGetMemoryFdPropertiesKHR :: #type proc "system" (device: Device, handleType: ExternalMemoryHandleTypeFlags, fd: c.int, pMemoryFdProperties: [^]MemoryFdPropertiesKHR) -> Result
|
||||
ProcGetMemoryHostPointerPropertiesEXT :: #type proc "system" (device: Device, handleType: ExternalMemoryHandleTypeFlags, pHostPointer: rawptr, pMemoryHostPointerProperties: [^]MemoryHostPointerPropertiesEXT) -> Result
|
||||
ProcGetMemoryMetalHandleEXT :: #type proc "system" (device: Device, pGetMetalHandleInfo: ^MemoryGetMetalHandleInfoEXT, pHandle: ^rawptr) -> Result
|
||||
ProcGetMemoryMetalHandlePropertiesEXT :: #type proc "system" (device: Device, handleType: ExternalMemoryHandleTypeFlags, pHandle: rawptr, pMemoryMetalHandleProperties: [^]MemoryMetalHandlePropertiesEXT) -> Result
|
||||
ProcGetMemoryRemoteAddressNV :: #type proc "system" (device: Device, pMemoryGetRemoteAddressInfo: ^MemoryGetRemoteAddressInfoNV, pAddress: [^]RemoteAddressNV) -> Result
|
||||
ProcGetMemoryWin32HandleKHR :: #type proc "system" (device: Device, pGetWin32HandleInfo: ^MemoryGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result
|
||||
ProcGetMemoryWin32HandleNV :: #type proc "system" (device: Device, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlagsNV, pHandle: ^HANDLE) -> Result
|
||||
ProcGetMemoryWin32HandlePropertiesKHR :: #type proc "system" (device: Device, handleType: ExternalMemoryHandleTypeFlags, handle: HANDLE, pMemoryWin32HandleProperties: [^]MemoryWin32HandlePropertiesKHR) -> Result
|
||||
ProcGetMicromapBuildSizesEXT :: #type proc "system" (device: Device, buildType: AccelerationStructureBuildTypeKHR, pBuildInfo: ^MicromapBuildInfoEXT, pSizeInfo: ^MicromapBuildSizesInfoEXT)
|
||||
ProcGetPartitionedAccelerationStructuresBuildSizesNV :: #type proc "system" (device: Device, pInfo: ^PartitionedAccelerationStructureInstancesInputNV, pSizeInfo: ^AccelerationStructureBuildSizesInfoKHR)
|
||||
ProcGetPastPresentationTimingGOOGLE :: #type proc "system" (device: Device, swapchain: SwapchainKHR, pPresentationTimingCount: ^u32, pPresentationTimings: [^]PastPresentationTimingGOOGLE) -> Result
|
||||
ProcGetPerformanceParameterINTEL :: #type proc "system" (device: Device, parameter: PerformanceParameterTypeINTEL, pValue: ^PerformanceValueINTEL) -> Result
|
||||
ProcGetPipelineBinaryDataKHR :: #type proc "system" (device: Device, pInfo: ^PipelineBinaryDataInfoKHR, pPipelineBinaryKey: ^PipelineBinaryKeyKHR, pPipelineBinaryDataSize: ^int, pPipelineBinaryData: rawptr) -> Result
|
||||
@@ -759,6 +775,7 @@ GetPhysicalDeviceCalibrateableTimeDomainsKHR: ProcGetPhysica
|
||||
GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV: ProcGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV
|
||||
GetPhysicalDeviceCooperativeMatrixPropertiesKHR: ProcGetPhysicalDeviceCooperativeMatrixPropertiesKHR
|
||||
GetPhysicalDeviceCooperativeMatrixPropertiesNV: ProcGetPhysicalDeviceCooperativeMatrixPropertiesNV
|
||||
GetPhysicalDeviceCooperativeVectorPropertiesNV: ProcGetPhysicalDeviceCooperativeVectorPropertiesNV
|
||||
GetPhysicalDeviceDisplayPlaneProperties2KHR: ProcGetPhysicalDeviceDisplayPlaneProperties2KHR
|
||||
GetPhysicalDeviceDisplayPlanePropertiesKHR: ProcGetPhysicalDeviceDisplayPlanePropertiesKHR
|
||||
GetPhysicalDeviceDisplayProperties2KHR: ProcGetPhysicalDeviceDisplayProperties2KHR
|
||||
@@ -875,11 +892,14 @@ CmdBlitImage2KHR: ProcCmdBlitImage2KHR
|
||||
CmdBuildAccelerationStructureNV: ProcCmdBuildAccelerationStructureNV
|
||||
CmdBuildAccelerationStructuresIndirectKHR: ProcCmdBuildAccelerationStructuresIndirectKHR
|
||||
CmdBuildAccelerationStructuresKHR: ProcCmdBuildAccelerationStructuresKHR
|
||||
CmdBuildClusterAccelerationStructureIndirectNV: ProcCmdBuildClusterAccelerationStructureIndirectNV
|
||||
CmdBuildMicromapsEXT: ProcCmdBuildMicromapsEXT
|
||||
CmdBuildPartitionedAccelerationStructuresNV: ProcCmdBuildPartitionedAccelerationStructuresNV
|
||||
CmdClearAttachments: ProcCmdClearAttachments
|
||||
CmdClearColorImage: ProcCmdClearColorImage
|
||||
CmdClearDepthStencilImage: ProcCmdClearDepthStencilImage
|
||||
CmdControlVideoCodingKHR: ProcCmdControlVideoCodingKHR
|
||||
CmdConvertCooperativeVectorMatrixNV: ProcCmdConvertCooperativeVectorMatrixNV
|
||||
CmdCopyAccelerationStructureKHR: ProcCmdCopyAccelerationStructureKHR
|
||||
CmdCopyAccelerationStructureNV: ProcCmdCopyAccelerationStructureNV
|
||||
CmdCopyAccelerationStructureToMemoryKHR: ProcCmdCopyAccelerationStructureToMemoryKHR
|
||||
@@ -913,6 +933,9 @@ CmdDecompressMemoryNV: ProcCmdDecompressMemoryN
|
||||
CmdDispatch: ProcCmdDispatch
|
||||
CmdDispatchBase: ProcCmdDispatchBase
|
||||
CmdDispatchBaseKHR: ProcCmdDispatchBaseKHR
|
||||
CmdDispatchGraphAMDX: ProcCmdDispatchGraphAMDX
|
||||
CmdDispatchGraphIndirectAMDX: ProcCmdDispatchGraphIndirectAMDX
|
||||
CmdDispatchGraphIndirectCountAMDX: ProcCmdDispatchGraphIndirectCountAMDX
|
||||
CmdDispatchIndirect: ProcCmdDispatchIndirect
|
||||
CmdDraw: ProcCmdDraw
|
||||
CmdDrawClusterHUAWEI: ProcCmdDrawClusterHUAWEI
|
||||
@@ -951,6 +974,7 @@ CmdExecuteCommands: ProcCmdExecuteCommands
|
||||
CmdExecuteGeneratedCommandsEXT: ProcCmdExecuteGeneratedCommandsEXT
|
||||
CmdExecuteGeneratedCommandsNV: ProcCmdExecuteGeneratedCommandsNV
|
||||
CmdFillBuffer: ProcCmdFillBuffer
|
||||
CmdInitializeGraphScratchMemoryAMDX: ProcCmdInitializeGraphScratchMemoryAMDX
|
||||
CmdInsertDebugUtilsLabelEXT: ProcCmdInsertDebugUtilsLabelEXT
|
||||
CmdNextSubpass: ProcCmdNextSubpass
|
||||
CmdNextSubpass2: ProcCmdNextSubpass2
|
||||
@@ -1102,6 +1126,7 @@ CmdWriteTimestamp: ProcCmdWriteTimestamp
|
||||
CmdWriteTimestamp2: ProcCmdWriteTimestamp2
|
||||
CmdWriteTimestamp2KHR: ProcCmdWriteTimestamp2KHR
|
||||
CompileDeferredNV: ProcCompileDeferredNV
|
||||
ConvertCooperativeVectorMatrixNV: ProcConvertCooperativeVectorMatrixNV
|
||||
CopyAccelerationStructureKHR: ProcCopyAccelerationStructureKHR
|
||||
CopyAccelerationStructureToMemoryKHR: ProcCopyAccelerationStructureToMemoryKHR
|
||||
CopyImageToImage: ProcCopyImageToImage
|
||||
@@ -1130,6 +1155,7 @@ CreateDescriptorSetLayout: ProcCreateDescriptorSetL
|
||||
CreateDescriptorUpdateTemplate: ProcCreateDescriptorUpdateTemplate
|
||||
CreateDescriptorUpdateTemplateKHR: ProcCreateDescriptorUpdateTemplateKHR
|
||||
CreateEvent: ProcCreateEvent
|
||||
CreateExecutionGraphPipelinesAMDX: ProcCreateExecutionGraphPipelinesAMDX
|
||||
CreateFence: ProcCreateFence
|
||||
CreateFramebuffer: ProcCreateFramebuffer
|
||||
CreateGraphicsPipelines: ProcCreateGraphicsPipelines
|
||||
@@ -1232,6 +1258,7 @@ GetBufferOpaqueCaptureAddressKHR: ProcGetBufferOpaqueCaptu
|
||||
GetBufferOpaqueCaptureDescriptorDataEXT: ProcGetBufferOpaqueCaptureDescriptorDataEXT
|
||||
GetCalibratedTimestampsEXT: ProcGetCalibratedTimestampsEXT
|
||||
GetCalibratedTimestampsKHR: ProcGetCalibratedTimestampsKHR
|
||||
GetClusterAccelerationStructureBuildSizesNV: ProcGetClusterAccelerationStructureBuildSizesNV
|
||||
GetCudaModuleCacheNV: ProcGetCudaModuleCacheNV
|
||||
GetDeferredOperationMaxConcurrencyKHR: ProcGetDeferredOperationMaxConcurrencyKHR
|
||||
GetDeferredOperationResultKHR: ProcGetDeferredOperationResultKHR
|
||||
@@ -1268,6 +1295,8 @@ GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: ProcGetDeviceSubpassShad
|
||||
GetDynamicRenderingTilePropertiesQCOM: ProcGetDynamicRenderingTilePropertiesQCOM
|
||||
GetEncodedVideoSessionParametersKHR: ProcGetEncodedVideoSessionParametersKHR
|
||||
GetEventStatus: ProcGetEventStatus
|
||||
GetExecutionGraphPipelineNodeIndexAMDX: ProcGetExecutionGraphPipelineNodeIndexAMDX
|
||||
GetExecutionGraphPipelineScratchSizeAMDX: ProcGetExecutionGraphPipelineScratchSizeAMDX
|
||||
GetFenceFdKHR: ProcGetFenceFdKHR
|
||||
GetFenceStatus: ProcGetFenceStatus
|
||||
GetFenceWin32HandleKHR: ProcGetFenceWin32HandleKHR
|
||||
@@ -1294,11 +1323,14 @@ GetLatencyTimingsNV: ProcGetLatencyTimingsNV
|
||||
GetMemoryFdKHR: ProcGetMemoryFdKHR
|
||||
GetMemoryFdPropertiesKHR: ProcGetMemoryFdPropertiesKHR
|
||||
GetMemoryHostPointerPropertiesEXT: ProcGetMemoryHostPointerPropertiesEXT
|
||||
GetMemoryMetalHandleEXT: ProcGetMemoryMetalHandleEXT
|
||||
GetMemoryMetalHandlePropertiesEXT: ProcGetMemoryMetalHandlePropertiesEXT
|
||||
GetMemoryRemoteAddressNV: ProcGetMemoryRemoteAddressNV
|
||||
GetMemoryWin32HandleKHR: ProcGetMemoryWin32HandleKHR
|
||||
GetMemoryWin32HandleNV: ProcGetMemoryWin32HandleNV
|
||||
GetMemoryWin32HandlePropertiesKHR: ProcGetMemoryWin32HandlePropertiesKHR
|
||||
GetMicromapBuildSizesEXT: ProcGetMicromapBuildSizesEXT
|
||||
GetPartitionedAccelerationStructuresBuildSizesNV: ProcGetPartitionedAccelerationStructuresBuildSizesNV
|
||||
GetPastPresentationTimingGOOGLE: ProcGetPastPresentationTimingGOOGLE
|
||||
GetPerformanceParameterINTEL: ProcGetPerformanceParameterINTEL
|
||||
GetPipelineBinaryDataKHR: ProcGetPipelineBinaryDataKHR
|
||||
@@ -1456,6 +1488,7 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV")
|
||||
set_proc_address(&GetPhysicalDeviceCooperativeMatrixPropertiesKHR, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR")
|
||||
set_proc_address(&GetPhysicalDeviceCooperativeMatrixPropertiesNV, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")
|
||||
set_proc_address(&GetPhysicalDeviceCooperativeVectorPropertiesNV, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV")
|
||||
set_proc_address(&GetPhysicalDeviceDisplayPlaneProperties2KHR, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")
|
||||
set_proc_address(&GetPhysicalDeviceDisplayPlanePropertiesKHR, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")
|
||||
set_proc_address(&GetPhysicalDeviceDisplayProperties2KHR, "vkGetPhysicalDeviceDisplayProperties2KHR")
|
||||
@@ -1572,11 +1605,14 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&CmdBuildAccelerationStructureNV, "vkCmdBuildAccelerationStructureNV")
|
||||
set_proc_address(&CmdBuildAccelerationStructuresIndirectKHR, "vkCmdBuildAccelerationStructuresIndirectKHR")
|
||||
set_proc_address(&CmdBuildAccelerationStructuresKHR, "vkCmdBuildAccelerationStructuresKHR")
|
||||
set_proc_address(&CmdBuildClusterAccelerationStructureIndirectNV, "vkCmdBuildClusterAccelerationStructureIndirectNV")
|
||||
set_proc_address(&CmdBuildMicromapsEXT, "vkCmdBuildMicromapsEXT")
|
||||
set_proc_address(&CmdBuildPartitionedAccelerationStructuresNV, "vkCmdBuildPartitionedAccelerationStructuresNV")
|
||||
set_proc_address(&CmdClearAttachments, "vkCmdClearAttachments")
|
||||
set_proc_address(&CmdClearColorImage, "vkCmdClearColorImage")
|
||||
set_proc_address(&CmdClearDepthStencilImage, "vkCmdClearDepthStencilImage")
|
||||
set_proc_address(&CmdControlVideoCodingKHR, "vkCmdControlVideoCodingKHR")
|
||||
set_proc_address(&CmdConvertCooperativeVectorMatrixNV, "vkCmdConvertCooperativeVectorMatrixNV")
|
||||
set_proc_address(&CmdCopyAccelerationStructureKHR, "vkCmdCopyAccelerationStructureKHR")
|
||||
set_proc_address(&CmdCopyAccelerationStructureNV, "vkCmdCopyAccelerationStructureNV")
|
||||
set_proc_address(&CmdCopyAccelerationStructureToMemoryKHR, "vkCmdCopyAccelerationStructureToMemoryKHR")
|
||||
@@ -1610,6 +1646,9 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&CmdDispatch, "vkCmdDispatch")
|
||||
set_proc_address(&CmdDispatchBase, "vkCmdDispatchBase")
|
||||
set_proc_address(&CmdDispatchBaseKHR, "vkCmdDispatchBaseKHR")
|
||||
set_proc_address(&CmdDispatchGraphAMDX, "vkCmdDispatchGraphAMDX")
|
||||
set_proc_address(&CmdDispatchGraphIndirectAMDX, "vkCmdDispatchGraphIndirectAMDX")
|
||||
set_proc_address(&CmdDispatchGraphIndirectCountAMDX, "vkCmdDispatchGraphIndirectCountAMDX")
|
||||
set_proc_address(&CmdDispatchIndirect, "vkCmdDispatchIndirect")
|
||||
set_proc_address(&CmdDraw, "vkCmdDraw")
|
||||
set_proc_address(&CmdDrawClusterHUAWEI, "vkCmdDrawClusterHUAWEI")
|
||||
@@ -1648,6 +1687,7 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&CmdExecuteGeneratedCommandsEXT, "vkCmdExecuteGeneratedCommandsEXT")
|
||||
set_proc_address(&CmdExecuteGeneratedCommandsNV, "vkCmdExecuteGeneratedCommandsNV")
|
||||
set_proc_address(&CmdFillBuffer, "vkCmdFillBuffer")
|
||||
set_proc_address(&CmdInitializeGraphScratchMemoryAMDX, "vkCmdInitializeGraphScratchMemoryAMDX")
|
||||
set_proc_address(&CmdInsertDebugUtilsLabelEXT, "vkCmdInsertDebugUtilsLabelEXT")
|
||||
set_proc_address(&CmdNextSubpass, "vkCmdNextSubpass")
|
||||
set_proc_address(&CmdNextSubpass2, "vkCmdNextSubpass2")
|
||||
@@ -1799,6 +1839,7 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&CmdWriteTimestamp2, "vkCmdWriteTimestamp2")
|
||||
set_proc_address(&CmdWriteTimestamp2KHR, "vkCmdWriteTimestamp2KHR")
|
||||
set_proc_address(&CompileDeferredNV, "vkCompileDeferredNV")
|
||||
set_proc_address(&ConvertCooperativeVectorMatrixNV, "vkConvertCooperativeVectorMatrixNV")
|
||||
set_proc_address(&CopyAccelerationStructureKHR, "vkCopyAccelerationStructureKHR")
|
||||
set_proc_address(&CopyAccelerationStructureToMemoryKHR, "vkCopyAccelerationStructureToMemoryKHR")
|
||||
set_proc_address(&CopyImageToImage, "vkCopyImageToImage")
|
||||
@@ -1827,6 +1868,7 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&CreateDescriptorUpdateTemplate, "vkCreateDescriptorUpdateTemplate")
|
||||
set_proc_address(&CreateDescriptorUpdateTemplateKHR, "vkCreateDescriptorUpdateTemplateKHR")
|
||||
set_proc_address(&CreateEvent, "vkCreateEvent")
|
||||
set_proc_address(&CreateExecutionGraphPipelinesAMDX, "vkCreateExecutionGraphPipelinesAMDX")
|
||||
set_proc_address(&CreateFence, "vkCreateFence")
|
||||
set_proc_address(&CreateFramebuffer, "vkCreateFramebuffer")
|
||||
set_proc_address(&CreateGraphicsPipelines, "vkCreateGraphicsPipelines")
|
||||
@@ -1929,6 +1971,7 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&GetBufferOpaqueCaptureDescriptorDataEXT, "vkGetBufferOpaqueCaptureDescriptorDataEXT")
|
||||
set_proc_address(&GetCalibratedTimestampsEXT, "vkGetCalibratedTimestampsEXT")
|
||||
set_proc_address(&GetCalibratedTimestampsKHR, "vkGetCalibratedTimestampsKHR")
|
||||
set_proc_address(&GetClusterAccelerationStructureBuildSizesNV, "vkGetClusterAccelerationStructureBuildSizesNV")
|
||||
set_proc_address(&GetCudaModuleCacheNV, "vkGetCudaModuleCacheNV")
|
||||
set_proc_address(&GetDeferredOperationMaxConcurrencyKHR, "vkGetDeferredOperationMaxConcurrencyKHR")
|
||||
set_proc_address(&GetDeferredOperationResultKHR, "vkGetDeferredOperationResultKHR")
|
||||
@@ -1965,6 +2008,8 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&GetDynamicRenderingTilePropertiesQCOM, "vkGetDynamicRenderingTilePropertiesQCOM")
|
||||
set_proc_address(&GetEncodedVideoSessionParametersKHR, "vkGetEncodedVideoSessionParametersKHR")
|
||||
set_proc_address(&GetEventStatus, "vkGetEventStatus")
|
||||
set_proc_address(&GetExecutionGraphPipelineNodeIndexAMDX, "vkGetExecutionGraphPipelineNodeIndexAMDX")
|
||||
set_proc_address(&GetExecutionGraphPipelineScratchSizeAMDX, "vkGetExecutionGraphPipelineScratchSizeAMDX")
|
||||
set_proc_address(&GetFenceFdKHR, "vkGetFenceFdKHR")
|
||||
set_proc_address(&GetFenceStatus, "vkGetFenceStatus")
|
||||
set_proc_address(&GetFenceWin32HandleKHR, "vkGetFenceWin32HandleKHR")
|
||||
@@ -1991,11 +2036,14 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
||||
set_proc_address(&GetMemoryFdKHR, "vkGetMemoryFdKHR")
|
||||
set_proc_address(&GetMemoryFdPropertiesKHR, "vkGetMemoryFdPropertiesKHR")
|
||||
set_proc_address(&GetMemoryHostPointerPropertiesEXT, "vkGetMemoryHostPointerPropertiesEXT")
|
||||
set_proc_address(&GetMemoryMetalHandleEXT, "vkGetMemoryMetalHandleEXT")
|
||||
set_proc_address(&GetMemoryMetalHandlePropertiesEXT, "vkGetMemoryMetalHandlePropertiesEXT")
|
||||
set_proc_address(&GetMemoryRemoteAddressNV, "vkGetMemoryRemoteAddressNV")
|
||||
set_proc_address(&GetMemoryWin32HandleKHR, "vkGetMemoryWin32HandleKHR")
|
||||
set_proc_address(&GetMemoryWin32HandleNV, "vkGetMemoryWin32HandleNV")
|
||||
set_proc_address(&GetMemoryWin32HandlePropertiesKHR, "vkGetMemoryWin32HandlePropertiesKHR")
|
||||
set_proc_address(&GetMicromapBuildSizesEXT, "vkGetMicromapBuildSizesEXT")
|
||||
set_proc_address(&GetPartitionedAccelerationStructuresBuildSizesNV, "vkGetPartitionedAccelerationStructuresBuildSizesNV")
|
||||
set_proc_address(&GetPastPresentationTimingGOOGLE, "vkGetPastPresentationTimingGOOGLE")
|
||||
set_proc_address(&GetPerformanceParameterINTEL, "vkGetPerformanceParameterINTEL")
|
||||
set_proc_address(&GetPipelineBinaryDataKHR, "vkGetPipelineBinaryDataKHR")
|
||||
@@ -2164,11 +2212,14 @@ Device_VTable :: struct {
|
||||
CmdBuildAccelerationStructureNV: ProcCmdBuildAccelerationStructureNV,
|
||||
CmdBuildAccelerationStructuresIndirectKHR: ProcCmdBuildAccelerationStructuresIndirectKHR,
|
||||
CmdBuildAccelerationStructuresKHR: ProcCmdBuildAccelerationStructuresKHR,
|
||||
CmdBuildClusterAccelerationStructureIndirectNV: ProcCmdBuildClusterAccelerationStructureIndirectNV,
|
||||
CmdBuildMicromapsEXT: ProcCmdBuildMicromapsEXT,
|
||||
CmdBuildPartitionedAccelerationStructuresNV: ProcCmdBuildPartitionedAccelerationStructuresNV,
|
||||
CmdClearAttachments: ProcCmdClearAttachments,
|
||||
CmdClearColorImage: ProcCmdClearColorImage,
|
||||
CmdClearDepthStencilImage: ProcCmdClearDepthStencilImage,
|
||||
CmdControlVideoCodingKHR: ProcCmdControlVideoCodingKHR,
|
||||
CmdConvertCooperativeVectorMatrixNV: ProcCmdConvertCooperativeVectorMatrixNV,
|
||||
CmdCopyAccelerationStructureKHR: ProcCmdCopyAccelerationStructureKHR,
|
||||
CmdCopyAccelerationStructureNV: ProcCmdCopyAccelerationStructureNV,
|
||||
CmdCopyAccelerationStructureToMemoryKHR: ProcCmdCopyAccelerationStructureToMemoryKHR,
|
||||
@@ -2202,6 +2253,9 @@ Device_VTable :: struct {
|
||||
CmdDispatch: ProcCmdDispatch,
|
||||
CmdDispatchBase: ProcCmdDispatchBase,
|
||||
CmdDispatchBaseKHR: ProcCmdDispatchBaseKHR,
|
||||
CmdDispatchGraphAMDX: ProcCmdDispatchGraphAMDX,
|
||||
CmdDispatchGraphIndirectAMDX: ProcCmdDispatchGraphIndirectAMDX,
|
||||
CmdDispatchGraphIndirectCountAMDX: ProcCmdDispatchGraphIndirectCountAMDX,
|
||||
CmdDispatchIndirect: ProcCmdDispatchIndirect,
|
||||
CmdDraw: ProcCmdDraw,
|
||||
CmdDrawClusterHUAWEI: ProcCmdDrawClusterHUAWEI,
|
||||
@@ -2240,6 +2294,7 @@ Device_VTable :: struct {
|
||||
CmdExecuteGeneratedCommandsEXT: ProcCmdExecuteGeneratedCommandsEXT,
|
||||
CmdExecuteGeneratedCommandsNV: ProcCmdExecuteGeneratedCommandsNV,
|
||||
CmdFillBuffer: ProcCmdFillBuffer,
|
||||
CmdInitializeGraphScratchMemoryAMDX: ProcCmdInitializeGraphScratchMemoryAMDX,
|
||||
CmdInsertDebugUtilsLabelEXT: ProcCmdInsertDebugUtilsLabelEXT,
|
||||
CmdNextSubpass: ProcCmdNextSubpass,
|
||||
CmdNextSubpass2: ProcCmdNextSubpass2,
|
||||
@@ -2391,6 +2446,7 @@ Device_VTable :: struct {
|
||||
CmdWriteTimestamp2: ProcCmdWriteTimestamp2,
|
||||
CmdWriteTimestamp2KHR: ProcCmdWriteTimestamp2KHR,
|
||||
CompileDeferredNV: ProcCompileDeferredNV,
|
||||
ConvertCooperativeVectorMatrixNV: ProcConvertCooperativeVectorMatrixNV,
|
||||
CopyAccelerationStructureKHR: ProcCopyAccelerationStructureKHR,
|
||||
CopyAccelerationStructureToMemoryKHR: ProcCopyAccelerationStructureToMemoryKHR,
|
||||
CopyImageToImage: ProcCopyImageToImage,
|
||||
@@ -2419,6 +2475,7 @@ Device_VTable :: struct {
|
||||
CreateDescriptorUpdateTemplate: ProcCreateDescriptorUpdateTemplate,
|
||||
CreateDescriptorUpdateTemplateKHR: ProcCreateDescriptorUpdateTemplateKHR,
|
||||
CreateEvent: ProcCreateEvent,
|
||||
CreateExecutionGraphPipelinesAMDX: ProcCreateExecutionGraphPipelinesAMDX,
|
||||
CreateFence: ProcCreateFence,
|
||||
CreateFramebuffer: ProcCreateFramebuffer,
|
||||
CreateGraphicsPipelines: ProcCreateGraphicsPipelines,
|
||||
@@ -2521,6 +2578,7 @@ Device_VTable :: struct {
|
||||
GetBufferOpaqueCaptureDescriptorDataEXT: ProcGetBufferOpaqueCaptureDescriptorDataEXT,
|
||||
GetCalibratedTimestampsEXT: ProcGetCalibratedTimestampsEXT,
|
||||
GetCalibratedTimestampsKHR: ProcGetCalibratedTimestampsKHR,
|
||||
GetClusterAccelerationStructureBuildSizesNV: ProcGetClusterAccelerationStructureBuildSizesNV,
|
||||
GetCudaModuleCacheNV: ProcGetCudaModuleCacheNV,
|
||||
GetDeferredOperationMaxConcurrencyKHR: ProcGetDeferredOperationMaxConcurrencyKHR,
|
||||
GetDeferredOperationResultKHR: ProcGetDeferredOperationResultKHR,
|
||||
@@ -2557,6 +2615,8 @@ Device_VTable :: struct {
|
||||
GetDynamicRenderingTilePropertiesQCOM: ProcGetDynamicRenderingTilePropertiesQCOM,
|
||||
GetEncodedVideoSessionParametersKHR: ProcGetEncodedVideoSessionParametersKHR,
|
||||
GetEventStatus: ProcGetEventStatus,
|
||||
GetExecutionGraphPipelineNodeIndexAMDX: ProcGetExecutionGraphPipelineNodeIndexAMDX,
|
||||
GetExecutionGraphPipelineScratchSizeAMDX: ProcGetExecutionGraphPipelineScratchSizeAMDX,
|
||||
GetFenceFdKHR: ProcGetFenceFdKHR,
|
||||
GetFenceStatus: ProcGetFenceStatus,
|
||||
GetFenceWin32HandleKHR: ProcGetFenceWin32HandleKHR,
|
||||
@@ -2583,11 +2643,14 @@ Device_VTable :: struct {
|
||||
GetMemoryFdKHR: ProcGetMemoryFdKHR,
|
||||
GetMemoryFdPropertiesKHR: ProcGetMemoryFdPropertiesKHR,
|
||||
GetMemoryHostPointerPropertiesEXT: ProcGetMemoryHostPointerPropertiesEXT,
|
||||
GetMemoryMetalHandleEXT: ProcGetMemoryMetalHandleEXT,
|
||||
GetMemoryMetalHandlePropertiesEXT: ProcGetMemoryMetalHandlePropertiesEXT,
|
||||
GetMemoryRemoteAddressNV: ProcGetMemoryRemoteAddressNV,
|
||||
GetMemoryWin32HandleKHR: ProcGetMemoryWin32HandleKHR,
|
||||
GetMemoryWin32HandleNV: ProcGetMemoryWin32HandleNV,
|
||||
GetMemoryWin32HandlePropertiesKHR: ProcGetMemoryWin32HandlePropertiesKHR,
|
||||
GetMicromapBuildSizesEXT: ProcGetMicromapBuildSizesEXT,
|
||||
GetPartitionedAccelerationStructuresBuildSizesNV: ProcGetPartitionedAccelerationStructuresBuildSizesNV,
|
||||
GetPastPresentationTimingGOOGLE: ProcGetPastPresentationTimingGOOGLE,
|
||||
GetPerformanceParameterINTEL: ProcGetPerformanceParameterINTEL,
|
||||
GetPipelineBinaryDataKHR: ProcGetPipelineBinaryDataKHR,
|
||||
@@ -2754,11 +2817,14 @@ load_proc_addresses_device_vtable :: proc(device: Device, vtable: ^Device_VTable
|
||||
vtable.CmdBuildAccelerationStructureNV = auto_cast GetDeviceProcAddr(device, "vkCmdBuildAccelerationStructureNV")
|
||||
vtable.CmdBuildAccelerationStructuresIndirectKHR = auto_cast GetDeviceProcAddr(device, "vkCmdBuildAccelerationStructuresIndirectKHR")
|
||||
vtable.CmdBuildAccelerationStructuresKHR = auto_cast GetDeviceProcAddr(device, "vkCmdBuildAccelerationStructuresKHR")
|
||||
vtable.CmdBuildClusterAccelerationStructureIndirectNV = auto_cast GetDeviceProcAddr(device, "vkCmdBuildClusterAccelerationStructureIndirectNV")
|
||||
vtable.CmdBuildMicromapsEXT = auto_cast GetDeviceProcAddr(device, "vkCmdBuildMicromapsEXT")
|
||||
vtable.CmdBuildPartitionedAccelerationStructuresNV = auto_cast GetDeviceProcAddr(device, "vkCmdBuildPartitionedAccelerationStructuresNV")
|
||||
vtable.CmdClearAttachments = auto_cast GetDeviceProcAddr(device, "vkCmdClearAttachments")
|
||||
vtable.CmdClearColorImage = auto_cast GetDeviceProcAddr(device, "vkCmdClearColorImage")
|
||||
vtable.CmdClearDepthStencilImage = auto_cast GetDeviceProcAddr(device, "vkCmdClearDepthStencilImage")
|
||||
vtable.CmdControlVideoCodingKHR = auto_cast GetDeviceProcAddr(device, "vkCmdControlVideoCodingKHR")
|
||||
vtable.CmdConvertCooperativeVectorMatrixNV = auto_cast GetDeviceProcAddr(device, "vkCmdConvertCooperativeVectorMatrixNV")
|
||||
vtable.CmdCopyAccelerationStructureKHR = auto_cast GetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureKHR")
|
||||
vtable.CmdCopyAccelerationStructureNV = auto_cast GetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureNV")
|
||||
vtable.CmdCopyAccelerationStructureToMemoryKHR = auto_cast GetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureToMemoryKHR")
|
||||
@@ -2792,6 +2858,9 @@ load_proc_addresses_device_vtable :: proc(device: Device, vtable: ^Device_VTable
|
||||
vtable.CmdDispatch = auto_cast GetDeviceProcAddr(device, "vkCmdDispatch")
|
||||
vtable.CmdDispatchBase = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchBase")
|
||||
vtable.CmdDispatchBaseKHR = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchBaseKHR")
|
||||
vtable.CmdDispatchGraphAMDX = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchGraphAMDX")
|
||||
vtable.CmdDispatchGraphIndirectAMDX = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchGraphIndirectAMDX")
|
||||
vtable.CmdDispatchGraphIndirectCountAMDX = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchGraphIndirectCountAMDX")
|
||||
vtable.CmdDispatchIndirect = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchIndirect")
|
||||
vtable.CmdDraw = auto_cast GetDeviceProcAddr(device, "vkCmdDraw")
|
||||
vtable.CmdDrawClusterHUAWEI = auto_cast GetDeviceProcAddr(device, "vkCmdDrawClusterHUAWEI")
|
||||
@@ -2830,6 +2899,7 @@ load_proc_addresses_device_vtable :: proc(device: Device, vtable: ^Device_VTable
|
||||
vtable.CmdExecuteGeneratedCommandsEXT = auto_cast GetDeviceProcAddr(device, "vkCmdExecuteGeneratedCommandsEXT")
|
||||
vtable.CmdExecuteGeneratedCommandsNV = auto_cast GetDeviceProcAddr(device, "vkCmdExecuteGeneratedCommandsNV")
|
||||
vtable.CmdFillBuffer = auto_cast GetDeviceProcAddr(device, "vkCmdFillBuffer")
|
||||
vtable.CmdInitializeGraphScratchMemoryAMDX = auto_cast GetDeviceProcAddr(device, "vkCmdInitializeGraphScratchMemoryAMDX")
|
||||
vtable.CmdInsertDebugUtilsLabelEXT = auto_cast GetDeviceProcAddr(device, "vkCmdInsertDebugUtilsLabelEXT")
|
||||
vtable.CmdNextSubpass = auto_cast GetDeviceProcAddr(device, "vkCmdNextSubpass")
|
||||
vtable.CmdNextSubpass2 = auto_cast GetDeviceProcAddr(device, "vkCmdNextSubpass2")
|
||||
@@ -2981,6 +3051,7 @@ load_proc_addresses_device_vtable :: proc(device: Device, vtable: ^Device_VTable
|
||||
vtable.CmdWriteTimestamp2 = auto_cast GetDeviceProcAddr(device, "vkCmdWriteTimestamp2")
|
||||
vtable.CmdWriteTimestamp2KHR = auto_cast GetDeviceProcAddr(device, "vkCmdWriteTimestamp2KHR")
|
||||
vtable.CompileDeferredNV = auto_cast GetDeviceProcAddr(device, "vkCompileDeferredNV")
|
||||
vtable.ConvertCooperativeVectorMatrixNV = auto_cast GetDeviceProcAddr(device, "vkConvertCooperativeVectorMatrixNV")
|
||||
vtable.CopyAccelerationStructureKHR = auto_cast GetDeviceProcAddr(device, "vkCopyAccelerationStructureKHR")
|
||||
vtable.CopyAccelerationStructureToMemoryKHR = auto_cast GetDeviceProcAddr(device, "vkCopyAccelerationStructureToMemoryKHR")
|
||||
vtable.CopyImageToImage = auto_cast GetDeviceProcAddr(device, "vkCopyImageToImage")
|
||||
@@ -3009,6 +3080,7 @@ load_proc_addresses_device_vtable :: proc(device: Device, vtable: ^Device_VTable
|
||||
vtable.CreateDescriptorUpdateTemplate = auto_cast GetDeviceProcAddr(device, "vkCreateDescriptorUpdateTemplate")
|
||||
vtable.CreateDescriptorUpdateTemplateKHR = auto_cast GetDeviceProcAddr(device, "vkCreateDescriptorUpdateTemplateKHR")
|
||||
vtable.CreateEvent = auto_cast GetDeviceProcAddr(device, "vkCreateEvent")
|
||||
vtable.CreateExecutionGraphPipelinesAMDX = auto_cast GetDeviceProcAddr(device, "vkCreateExecutionGraphPipelinesAMDX")
|
||||
vtable.CreateFence = auto_cast GetDeviceProcAddr(device, "vkCreateFence")
|
||||
vtable.CreateFramebuffer = auto_cast GetDeviceProcAddr(device, "vkCreateFramebuffer")
|
||||
vtable.CreateGraphicsPipelines = auto_cast GetDeviceProcAddr(device, "vkCreateGraphicsPipelines")
|
||||
@@ -3111,6 +3183,7 @@ load_proc_addresses_device_vtable :: proc(device: Device, vtable: ^Device_VTable
|
||||
vtable.GetBufferOpaqueCaptureDescriptorDataEXT = auto_cast GetDeviceProcAddr(device, "vkGetBufferOpaqueCaptureDescriptorDataEXT")
|
||||
vtable.GetCalibratedTimestampsEXT = auto_cast GetDeviceProcAddr(device, "vkGetCalibratedTimestampsEXT")
|
||||
vtable.GetCalibratedTimestampsKHR = auto_cast GetDeviceProcAddr(device, "vkGetCalibratedTimestampsKHR")
|
||||
vtable.GetClusterAccelerationStructureBuildSizesNV = auto_cast GetDeviceProcAddr(device, "vkGetClusterAccelerationStructureBuildSizesNV")
|
||||
vtable.GetCudaModuleCacheNV = auto_cast GetDeviceProcAddr(device, "vkGetCudaModuleCacheNV")
|
||||
vtable.GetDeferredOperationMaxConcurrencyKHR = auto_cast GetDeviceProcAddr(device, "vkGetDeferredOperationMaxConcurrencyKHR")
|
||||
vtable.GetDeferredOperationResultKHR = auto_cast GetDeviceProcAddr(device, "vkGetDeferredOperationResultKHR")
|
||||
@@ -3147,6 +3220,8 @@ load_proc_addresses_device_vtable :: proc(device: Device, vtable: ^Device_VTable
|
||||
vtable.GetDynamicRenderingTilePropertiesQCOM = auto_cast GetDeviceProcAddr(device, "vkGetDynamicRenderingTilePropertiesQCOM")
|
||||
vtable.GetEncodedVideoSessionParametersKHR = auto_cast GetDeviceProcAddr(device, "vkGetEncodedVideoSessionParametersKHR")
|
||||
vtable.GetEventStatus = auto_cast GetDeviceProcAddr(device, "vkGetEventStatus")
|
||||
vtable.GetExecutionGraphPipelineNodeIndexAMDX = auto_cast GetDeviceProcAddr(device, "vkGetExecutionGraphPipelineNodeIndexAMDX")
|
||||
vtable.GetExecutionGraphPipelineScratchSizeAMDX = auto_cast GetDeviceProcAddr(device, "vkGetExecutionGraphPipelineScratchSizeAMDX")
|
||||
vtable.GetFenceFdKHR = auto_cast GetDeviceProcAddr(device, "vkGetFenceFdKHR")
|
||||
vtable.GetFenceStatus = auto_cast GetDeviceProcAddr(device, "vkGetFenceStatus")
|
||||
vtable.GetFenceWin32HandleKHR = auto_cast GetDeviceProcAddr(device, "vkGetFenceWin32HandleKHR")
|
||||
@@ -3173,11 +3248,14 @@ load_proc_addresses_device_vtable :: proc(device: Device, vtable: ^Device_VTable
|
||||
vtable.GetMemoryFdKHR = auto_cast GetDeviceProcAddr(device, "vkGetMemoryFdKHR")
|
||||
vtable.GetMemoryFdPropertiesKHR = auto_cast GetDeviceProcAddr(device, "vkGetMemoryFdPropertiesKHR")
|
||||
vtable.GetMemoryHostPointerPropertiesEXT = auto_cast GetDeviceProcAddr(device, "vkGetMemoryHostPointerPropertiesEXT")
|
||||
vtable.GetMemoryMetalHandleEXT = auto_cast GetDeviceProcAddr(device, "vkGetMemoryMetalHandleEXT")
|
||||
vtable.GetMemoryMetalHandlePropertiesEXT = auto_cast GetDeviceProcAddr(device, "vkGetMemoryMetalHandlePropertiesEXT")
|
||||
vtable.GetMemoryRemoteAddressNV = auto_cast GetDeviceProcAddr(device, "vkGetMemoryRemoteAddressNV")
|
||||
vtable.GetMemoryWin32HandleKHR = auto_cast GetDeviceProcAddr(device, "vkGetMemoryWin32HandleKHR")
|
||||
vtable.GetMemoryWin32HandleNV = auto_cast GetDeviceProcAddr(device, "vkGetMemoryWin32HandleNV")
|
||||
vtable.GetMemoryWin32HandlePropertiesKHR = auto_cast GetDeviceProcAddr(device, "vkGetMemoryWin32HandlePropertiesKHR")
|
||||
vtable.GetMicromapBuildSizesEXT = auto_cast GetDeviceProcAddr(device, "vkGetMicromapBuildSizesEXT")
|
||||
vtable.GetPartitionedAccelerationStructuresBuildSizesNV = auto_cast GetDeviceProcAddr(device, "vkGetPartitionedAccelerationStructuresBuildSizesNV")
|
||||
vtable.GetPastPresentationTimingGOOGLE = auto_cast GetDeviceProcAddr(device, "vkGetPastPresentationTimingGOOGLE")
|
||||
vtable.GetPerformanceParameterINTEL = auto_cast GetDeviceProcAddr(device, "vkGetPerformanceParameterINTEL")
|
||||
vtable.GetPipelineBinaryDataKHR = auto_cast GetDeviceProcAddr(device, "vkGetPipelineBinaryDataKHR")
|
||||
@@ -3344,11 +3422,14 @@ load_proc_addresses_device :: proc(device: Device) {
|
||||
CmdBuildAccelerationStructureNV = auto_cast GetDeviceProcAddr(device, "vkCmdBuildAccelerationStructureNV")
|
||||
CmdBuildAccelerationStructuresIndirectKHR = auto_cast GetDeviceProcAddr(device, "vkCmdBuildAccelerationStructuresIndirectKHR")
|
||||
CmdBuildAccelerationStructuresKHR = auto_cast GetDeviceProcAddr(device, "vkCmdBuildAccelerationStructuresKHR")
|
||||
CmdBuildClusterAccelerationStructureIndirectNV = auto_cast GetDeviceProcAddr(device, "vkCmdBuildClusterAccelerationStructureIndirectNV")
|
||||
CmdBuildMicromapsEXT = auto_cast GetDeviceProcAddr(device, "vkCmdBuildMicromapsEXT")
|
||||
CmdBuildPartitionedAccelerationStructuresNV = auto_cast GetDeviceProcAddr(device, "vkCmdBuildPartitionedAccelerationStructuresNV")
|
||||
CmdClearAttachments = auto_cast GetDeviceProcAddr(device, "vkCmdClearAttachments")
|
||||
CmdClearColorImage = auto_cast GetDeviceProcAddr(device, "vkCmdClearColorImage")
|
||||
CmdClearDepthStencilImage = auto_cast GetDeviceProcAddr(device, "vkCmdClearDepthStencilImage")
|
||||
CmdControlVideoCodingKHR = auto_cast GetDeviceProcAddr(device, "vkCmdControlVideoCodingKHR")
|
||||
CmdConvertCooperativeVectorMatrixNV = auto_cast GetDeviceProcAddr(device, "vkCmdConvertCooperativeVectorMatrixNV")
|
||||
CmdCopyAccelerationStructureKHR = auto_cast GetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureKHR")
|
||||
CmdCopyAccelerationStructureNV = auto_cast GetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureNV")
|
||||
CmdCopyAccelerationStructureToMemoryKHR = auto_cast GetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureToMemoryKHR")
|
||||
@@ -3382,6 +3463,9 @@ load_proc_addresses_device :: proc(device: Device) {
|
||||
CmdDispatch = auto_cast GetDeviceProcAddr(device, "vkCmdDispatch")
|
||||
CmdDispatchBase = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchBase")
|
||||
CmdDispatchBaseKHR = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchBaseKHR")
|
||||
CmdDispatchGraphAMDX = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchGraphAMDX")
|
||||
CmdDispatchGraphIndirectAMDX = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchGraphIndirectAMDX")
|
||||
CmdDispatchGraphIndirectCountAMDX = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchGraphIndirectCountAMDX")
|
||||
CmdDispatchIndirect = auto_cast GetDeviceProcAddr(device, "vkCmdDispatchIndirect")
|
||||
CmdDraw = auto_cast GetDeviceProcAddr(device, "vkCmdDraw")
|
||||
CmdDrawClusterHUAWEI = auto_cast GetDeviceProcAddr(device, "vkCmdDrawClusterHUAWEI")
|
||||
@@ -3420,6 +3504,7 @@ load_proc_addresses_device :: proc(device: Device) {
|
||||
CmdExecuteGeneratedCommandsEXT = auto_cast GetDeviceProcAddr(device, "vkCmdExecuteGeneratedCommandsEXT")
|
||||
CmdExecuteGeneratedCommandsNV = auto_cast GetDeviceProcAddr(device, "vkCmdExecuteGeneratedCommandsNV")
|
||||
CmdFillBuffer = auto_cast GetDeviceProcAddr(device, "vkCmdFillBuffer")
|
||||
CmdInitializeGraphScratchMemoryAMDX = auto_cast GetDeviceProcAddr(device, "vkCmdInitializeGraphScratchMemoryAMDX")
|
||||
CmdInsertDebugUtilsLabelEXT = auto_cast GetDeviceProcAddr(device, "vkCmdInsertDebugUtilsLabelEXT")
|
||||
CmdNextSubpass = auto_cast GetDeviceProcAddr(device, "vkCmdNextSubpass")
|
||||
CmdNextSubpass2 = auto_cast GetDeviceProcAddr(device, "vkCmdNextSubpass2")
|
||||
@@ -3571,6 +3656,7 @@ load_proc_addresses_device :: proc(device: Device) {
|
||||
CmdWriteTimestamp2 = auto_cast GetDeviceProcAddr(device, "vkCmdWriteTimestamp2")
|
||||
CmdWriteTimestamp2KHR = auto_cast GetDeviceProcAddr(device, "vkCmdWriteTimestamp2KHR")
|
||||
CompileDeferredNV = auto_cast GetDeviceProcAddr(device, "vkCompileDeferredNV")
|
||||
ConvertCooperativeVectorMatrixNV = auto_cast GetDeviceProcAddr(device, "vkConvertCooperativeVectorMatrixNV")
|
||||
CopyAccelerationStructureKHR = auto_cast GetDeviceProcAddr(device, "vkCopyAccelerationStructureKHR")
|
||||
CopyAccelerationStructureToMemoryKHR = auto_cast GetDeviceProcAddr(device, "vkCopyAccelerationStructureToMemoryKHR")
|
||||
CopyImageToImage = auto_cast GetDeviceProcAddr(device, "vkCopyImageToImage")
|
||||
@@ -3599,6 +3685,7 @@ load_proc_addresses_device :: proc(device: Device) {
|
||||
CreateDescriptorUpdateTemplate = auto_cast GetDeviceProcAddr(device, "vkCreateDescriptorUpdateTemplate")
|
||||
CreateDescriptorUpdateTemplateKHR = auto_cast GetDeviceProcAddr(device, "vkCreateDescriptorUpdateTemplateKHR")
|
||||
CreateEvent = auto_cast GetDeviceProcAddr(device, "vkCreateEvent")
|
||||
CreateExecutionGraphPipelinesAMDX = auto_cast GetDeviceProcAddr(device, "vkCreateExecutionGraphPipelinesAMDX")
|
||||
CreateFence = auto_cast GetDeviceProcAddr(device, "vkCreateFence")
|
||||
CreateFramebuffer = auto_cast GetDeviceProcAddr(device, "vkCreateFramebuffer")
|
||||
CreateGraphicsPipelines = auto_cast GetDeviceProcAddr(device, "vkCreateGraphicsPipelines")
|
||||
@@ -3701,6 +3788,7 @@ load_proc_addresses_device :: proc(device: Device) {
|
||||
GetBufferOpaqueCaptureDescriptorDataEXT = auto_cast GetDeviceProcAddr(device, "vkGetBufferOpaqueCaptureDescriptorDataEXT")
|
||||
GetCalibratedTimestampsEXT = auto_cast GetDeviceProcAddr(device, "vkGetCalibratedTimestampsEXT")
|
||||
GetCalibratedTimestampsKHR = auto_cast GetDeviceProcAddr(device, "vkGetCalibratedTimestampsKHR")
|
||||
GetClusterAccelerationStructureBuildSizesNV = auto_cast GetDeviceProcAddr(device, "vkGetClusterAccelerationStructureBuildSizesNV")
|
||||
GetCudaModuleCacheNV = auto_cast GetDeviceProcAddr(device, "vkGetCudaModuleCacheNV")
|
||||
GetDeferredOperationMaxConcurrencyKHR = auto_cast GetDeviceProcAddr(device, "vkGetDeferredOperationMaxConcurrencyKHR")
|
||||
GetDeferredOperationResultKHR = auto_cast GetDeviceProcAddr(device, "vkGetDeferredOperationResultKHR")
|
||||
@@ -3737,6 +3825,8 @@ load_proc_addresses_device :: proc(device: Device) {
|
||||
GetDynamicRenderingTilePropertiesQCOM = auto_cast GetDeviceProcAddr(device, "vkGetDynamicRenderingTilePropertiesQCOM")
|
||||
GetEncodedVideoSessionParametersKHR = auto_cast GetDeviceProcAddr(device, "vkGetEncodedVideoSessionParametersKHR")
|
||||
GetEventStatus = auto_cast GetDeviceProcAddr(device, "vkGetEventStatus")
|
||||
GetExecutionGraphPipelineNodeIndexAMDX = auto_cast GetDeviceProcAddr(device, "vkGetExecutionGraphPipelineNodeIndexAMDX")
|
||||
GetExecutionGraphPipelineScratchSizeAMDX = auto_cast GetDeviceProcAddr(device, "vkGetExecutionGraphPipelineScratchSizeAMDX")
|
||||
GetFenceFdKHR = auto_cast GetDeviceProcAddr(device, "vkGetFenceFdKHR")
|
||||
GetFenceStatus = auto_cast GetDeviceProcAddr(device, "vkGetFenceStatus")
|
||||
GetFenceWin32HandleKHR = auto_cast GetDeviceProcAddr(device, "vkGetFenceWin32HandleKHR")
|
||||
@@ -3763,11 +3853,14 @@ load_proc_addresses_device :: proc(device: Device) {
|
||||
GetMemoryFdKHR = auto_cast GetDeviceProcAddr(device, "vkGetMemoryFdKHR")
|
||||
GetMemoryFdPropertiesKHR = auto_cast GetDeviceProcAddr(device, "vkGetMemoryFdPropertiesKHR")
|
||||
GetMemoryHostPointerPropertiesEXT = auto_cast GetDeviceProcAddr(device, "vkGetMemoryHostPointerPropertiesEXT")
|
||||
GetMemoryMetalHandleEXT = auto_cast GetDeviceProcAddr(device, "vkGetMemoryMetalHandleEXT")
|
||||
GetMemoryMetalHandlePropertiesEXT = auto_cast GetDeviceProcAddr(device, "vkGetMemoryMetalHandlePropertiesEXT")
|
||||
GetMemoryRemoteAddressNV = auto_cast GetDeviceProcAddr(device, "vkGetMemoryRemoteAddressNV")
|
||||
GetMemoryWin32HandleKHR = auto_cast GetDeviceProcAddr(device, "vkGetMemoryWin32HandleKHR")
|
||||
GetMemoryWin32HandleNV = auto_cast GetDeviceProcAddr(device, "vkGetMemoryWin32HandleNV")
|
||||
GetMemoryWin32HandlePropertiesKHR = auto_cast GetDeviceProcAddr(device, "vkGetMemoryWin32HandlePropertiesKHR")
|
||||
GetMicromapBuildSizesEXT = auto_cast GetDeviceProcAddr(device, "vkGetMicromapBuildSizesEXT")
|
||||
GetPartitionedAccelerationStructuresBuildSizesNV = auto_cast GetDeviceProcAddr(device, "vkGetPartitionedAccelerationStructuresBuildSizesNV")
|
||||
GetPastPresentationTimingGOOGLE = auto_cast GetDeviceProcAddr(device, "vkGetPastPresentationTimingGOOGLE")
|
||||
GetPerformanceParameterINTEL = auto_cast GetDeviceProcAddr(device, "vkGetPerformanceParameterINTEL")
|
||||
GetPipelineBinaryDataKHR = auto_cast GetDeviceProcAddr(device, "vkGetPipelineBinaryDataKHR")
|
||||
@@ -3916,6 +4009,7 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV")
|
||||
GetPhysicalDeviceCooperativeMatrixPropertiesKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR")
|
||||
GetPhysicalDeviceCooperativeMatrixPropertiesNV = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")
|
||||
GetPhysicalDeviceCooperativeVectorPropertiesNV = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV")
|
||||
GetPhysicalDeviceDisplayPlaneProperties2KHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")
|
||||
GetPhysicalDeviceDisplayPlanePropertiesKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")
|
||||
GetPhysicalDeviceDisplayProperties2KHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayProperties2KHR")
|
||||
@@ -4032,11 +4126,14 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
CmdBuildAccelerationStructureNV = auto_cast GetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructureNV")
|
||||
CmdBuildAccelerationStructuresIndirectKHR = auto_cast GetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresIndirectKHR")
|
||||
CmdBuildAccelerationStructuresKHR = auto_cast GetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresKHR")
|
||||
CmdBuildClusterAccelerationStructureIndirectNV = auto_cast GetInstanceProcAddr(instance, "vkCmdBuildClusterAccelerationStructureIndirectNV")
|
||||
CmdBuildMicromapsEXT = auto_cast GetInstanceProcAddr(instance, "vkCmdBuildMicromapsEXT")
|
||||
CmdBuildPartitionedAccelerationStructuresNV = auto_cast GetInstanceProcAddr(instance, "vkCmdBuildPartitionedAccelerationStructuresNV")
|
||||
CmdClearAttachments = auto_cast GetInstanceProcAddr(instance, "vkCmdClearAttachments")
|
||||
CmdClearColorImage = auto_cast GetInstanceProcAddr(instance, "vkCmdClearColorImage")
|
||||
CmdClearDepthStencilImage = auto_cast GetInstanceProcAddr(instance, "vkCmdClearDepthStencilImage")
|
||||
CmdControlVideoCodingKHR = auto_cast GetInstanceProcAddr(instance, "vkCmdControlVideoCodingKHR")
|
||||
CmdConvertCooperativeVectorMatrixNV = auto_cast GetInstanceProcAddr(instance, "vkCmdConvertCooperativeVectorMatrixNV")
|
||||
CmdCopyAccelerationStructureKHR = auto_cast GetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureKHR")
|
||||
CmdCopyAccelerationStructureNV = auto_cast GetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureNV")
|
||||
CmdCopyAccelerationStructureToMemoryKHR = auto_cast GetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureToMemoryKHR")
|
||||
@@ -4070,6 +4167,9 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
CmdDispatch = auto_cast GetInstanceProcAddr(instance, "vkCmdDispatch")
|
||||
CmdDispatchBase = auto_cast GetInstanceProcAddr(instance, "vkCmdDispatchBase")
|
||||
CmdDispatchBaseKHR = auto_cast GetInstanceProcAddr(instance, "vkCmdDispatchBaseKHR")
|
||||
CmdDispatchGraphAMDX = auto_cast GetInstanceProcAddr(instance, "vkCmdDispatchGraphAMDX")
|
||||
CmdDispatchGraphIndirectAMDX = auto_cast GetInstanceProcAddr(instance, "vkCmdDispatchGraphIndirectAMDX")
|
||||
CmdDispatchGraphIndirectCountAMDX = auto_cast GetInstanceProcAddr(instance, "vkCmdDispatchGraphIndirectCountAMDX")
|
||||
CmdDispatchIndirect = auto_cast GetInstanceProcAddr(instance, "vkCmdDispatchIndirect")
|
||||
CmdDraw = auto_cast GetInstanceProcAddr(instance, "vkCmdDraw")
|
||||
CmdDrawClusterHUAWEI = auto_cast GetInstanceProcAddr(instance, "vkCmdDrawClusterHUAWEI")
|
||||
@@ -4108,6 +4208,7 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
CmdExecuteGeneratedCommandsEXT = auto_cast GetInstanceProcAddr(instance, "vkCmdExecuteGeneratedCommandsEXT")
|
||||
CmdExecuteGeneratedCommandsNV = auto_cast GetInstanceProcAddr(instance, "vkCmdExecuteGeneratedCommandsNV")
|
||||
CmdFillBuffer = auto_cast GetInstanceProcAddr(instance, "vkCmdFillBuffer")
|
||||
CmdInitializeGraphScratchMemoryAMDX = auto_cast GetInstanceProcAddr(instance, "vkCmdInitializeGraphScratchMemoryAMDX")
|
||||
CmdInsertDebugUtilsLabelEXT = auto_cast GetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT")
|
||||
CmdNextSubpass = auto_cast GetInstanceProcAddr(instance, "vkCmdNextSubpass")
|
||||
CmdNextSubpass2 = auto_cast GetInstanceProcAddr(instance, "vkCmdNextSubpass2")
|
||||
@@ -4259,6 +4360,7 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
CmdWriteTimestamp2 = auto_cast GetInstanceProcAddr(instance, "vkCmdWriteTimestamp2")
|
||||
CmdWriteTimestamp2KHR = auto_cast GetInstanceProcAddr(instance, "vkCmdWriteTimestamp2KHR")
|
||||
CompileDeferredNV = auto_cast GetInstanceProcAddr(instance, "vkCompileDeferredNV")
|
||||
ConvertCooperativeVectorMatrixNV = auto_cast GetInstanceProcAddr(instance, "vkConvertCooperativeVectorMatrixNV")
|
||||
CopyAccelerationStructureKHR = auto_cast GetInstanceProcAddr(instance, "vkCopyAccelerationStructureKHR")
|
||||
CopyAccelerationStructureToMemoryKHR = auto_cast GetInstanceProcAddr(instance, "vkCopyAccelerationStructureToMemoryKHR")
|
||||
CopyImageToImage = auto_cast GetInstanceProcAddr(instance, "vkCopyImageToImage")
|
||||
@@ -4287,6 +4389,7 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
CreateDescriptorUpdateTemplate = auto_cast GetInstanceProcAddr(instance, "vkCreateDescriptorUpdateTemplate")
|
||||
CreateDescriptorUpdateTemplateKHR = auto_cast GetInstanceProcAddr(instance, "vkCreateDescriptorUpdateTemplateKHR")
|
||||
CreateEvent = auto_cast GetInstanceProcAddr(instance, "vkCreateEvent")
|
||||
CreateExecutionGraphPipelinesAMDX = auto_cast GetInstanceProcAddr(instance, "vkCreateExecutionGraphPipelinesAMDX")
|
||||
CreateFence = auto_cast GetInstanceProcAddr(instance, "vkCreateFence")
|
||||
CreateFramebuffer = auto_cast GetInstanceProcAddr(instance, "vkCreateFramebuffer")
|
||||
CreateGraphicsPipelines = auto_cast GetInstanceProcAddr(instance, "vkCreateGraphicsPipelines")
|
||||
@@ -4389,6 +4492,7 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
GetBufferOpaqueCaptureDescriptorDataEXT = auto_cast GetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT")
|
||||
GetCalibratedTimestampsEXT = auto_cast GetInstanceProcAddr(instance, "vkGetCalibratedTimestampsEXT")
|
||||
GetCalibratedTimestampsKHR = auto_cast GetInstanceProcAddr(instance, "vkGetCalibratedTimestampsKHR")
|
||||
GetClusterAccelerationStructureBuildSizesNV = auto_cast GetInstanceProcAddr(instance, "vkGetClusterAccelerationStructureBuildSizesNV")
|
||||
GetCudaModuleCacheNV = auto_cast GetInstanceProcAddr(instance, "vkGetCudaModuleCacheNV")
|
||||
GetDeferredOperationMaxConcurrencyKHR = auto_cast GetInstanceProcAddr(instance, "vkGetDeferredOperationMaxConcurrencyKHR")
|
||||
GetDeferredOperationResultKHR = auto_cast GetInstanceProcAddr(instance, "vkGetDeferredOperationResultKHR")
|
||||
@@ -4425,6 +4529,8 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
GetDynamicRenderingTilePropertiesQCOM = auto_cast GetInstanceProcAddr(instance, "vkGetDynamicRenderingTilePropertiesQCOM")
|
||||
GetEncodedVideoSessionParametersKHR = auto_cast GetInstanceProcAddr(instance, "vkGetEncodedVideoSessionParametersKHR")
|
||||
GetEventStatus = auto_cast GetInstanceProcAddr(instance, "vkGetEventStatus")
|
||||
GetExecutionGraphPipelineNodeIndexAMDX = auto_cast GetInstanceProcAddr(instance, "vkGetExecutionGraphPipelineNodeIndexAMDX")
|
||||
GetExecutionGraphPipelineScratchSizeAMDX = auto_cast GetInstanceProcAddr(instance, "vkGetExecutionGraphPipelineScratchSizeAMDX")
|
||||
GetFenceFdKHR = auto_cast GetInstanceProcAddr(instance, "vkGetFenceFdKHR")
|
||||
GetFenceStatus = auto_cast GetInstanceProcAddr(instance, "vkGetFenceStatus")
|
||||
GetFenceWin32HandleKHR = auto_cast GetInstanceProcAddr(instance, "vkGetFenceWin32HandleKHR")
|
||||
@@ -4451,11 +4557,14 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
||||
GetMemoryFdKHR = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryFdKHR")
|
||||
GetMemoryFdPropertiesKHR = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryFdPropertiesKHR")
|
||||
GetMemoryHostPointerPropertiesEXT = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryHostPointerPropertiesEXT")
|
||||
GetMemoryMetalHandleEXT = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryMetalHandleEXT")
|
||||
GetMemoryMetalHandlePropertiesEXT = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryMetalHandlePropertiesEXT")
|
||||
GetMemoryRemoteAddressNV = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryRemoteAddressNV")
|
||||
GetMemoryWin32HandleKHR = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryWin32HandleKHR")
|
||||
GetMemoryWin32HandleNV = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryWin32HandleNV")
|
||||
GetMemoryWin32HandlePropertiesKHR = auto_cast GetInstanceProcAddr(instance, "vkGetMemoryWin32HandlePropertiesKHR")
|
||||
GetMicromapBuildSizesEXT = auto_cast GetInstanceProcAddr(instance, "vkGetMicromapBuildSizesEXT")
|
||||
GetPartitionedAccelerationStructuresBuildSizesNV = auto_cast GetInstanceProcAddr(instance, "vkGetPartitionedAccelerationStructuresBuildSizesNV")
|
||||
GetPastPresentationTimingGOOGLE = auto_cast GetInstanceProcAddr(instance, "vkGetPastPresentationTimingGOOGLE")
|
||||
GetPerformanceParameterINTEL = auto_cast GetInstanceProcAddr(instance, "vkGetPerformanceParameterINTEL")
|
||||
GetPipelineBinaryDataKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPipelineBinaryDataKHR")
|
||||
|
||||
Vendored
+920
-102
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
lib/*
|
||||
!lib/.gitkeep
|
||||
!lib/wgpu-windows-x86_64-msvc-release
|
||||
example/web/triangle.wasm
|
||||
example/web/wgpu.js
|
||||
example/web/runtime.js
|
||||
|
||||
+22
-18
@@ -1,25 +1,26 @@
|
||||
# WGPU
|
||||
|
||||
/*
|
||||
A cross-platform (and WASM) GPU API.
|
||||
|
||||
WASM support is achieved by providing wrappers around the browser native WebGPU API
|
||||
that are called instead of the [wgpu-native](https://github.com/gfx-rs/wgpu-native) library,
|
||||
that are called instead of the [[wgpu-native; https://github.com/gfx-rs/wgpu-native]] library,
|
||||
the wgpu-native library provides support for all other targets.
|
||||
|
||||
Have a look at the `example/` directory for the rendering of a basic triangle.
|
||||
**Examples**
|
||||
|
||||
## Getting the wgpu-native libraries
|
||||
You can find a number of examples on [[Odin's official examples repository; https://github.com/odin-lang/examples/tree/master/wgpu]].
|
||||
|
||||
**Getting the wgpu-native libraries**
|
||||
|
||||
For native support (not the browser), some libraries are required. Fortunately this is
|
||||
extremely easy, just download them from the [releases on GitHub](https://github.com/gfx-rs/wgpu-native/releases/tag/v22.1.0.1),
|
||||
the bindings are for v22.1.0.1 at the moment.
|
||||
extremely easy, just download them from the [[releases on GitHub; https://github.com/gfx-rs/wgpu-native/releases/tag/v24.0.0.2]].
|
||||
the bindings are for v24.0.0.2 at the moment.
|
||||
|
||||
These are expected in the `lib` folder under the same name as they are released (just unzipped).
|
||||
By default it will look for a static release version (`wgpu-OS-ARCH-release.a|lib`),
|
||||
you can set `-define:WGPU_DEBUG=true` for it to look for a debug version,
|
||||
and use `-define:WGPU_SHARED=true` to look for the shared libraries.
|
||||
|
||||
## WASM
|
||||
**WASM**
|
||||
|
||||
For WASM, the module has to be built with a function table to enable callbacks.
|
||||
You can do so using `-extra-linker-flags:"--export-table"`.
|
||||
@@ -29,12 +30,20 @@ Being able to allocate is also required (for some auxiliary APIs but also for ma
|
||||
You can set the context that is used for allocations by setting the global variable `wpgu.g_context`.
|
||||
It will default to the `runtime.default_context`.
|
||||
|
||||
Again, have a look at the `example/` and how it is set up, doing the `--import-memory` and the likes
|
||||
Have a look at the [[example build file; https://github.com/odin-lang/examples/blob/master/wgpu/glfw-triangle/build_web.sh]] and [[html file; https://github.com/odin-lang/examples/blob/master/wgpu/glfw-triangle/web/index.html]]
|
||||
to see how it looks when set up, doing the `--import-memory` and the likes
|
||||
is not strictly necessary but allows your app more memory than the minimal default.
|
||||
|
||||
The bindings work on both `-target:js_wasm32` and `-target:js_wasm64p32`.
|
||||
|
||||
## GLFW Glue
|
||||
**SDL Glue**
|
||||
|
||||
There is an inner package `sdl2glue` (and `sdl3glue`) that can be used to glue together WGPU and SDL.
|
||||
It exports one procedure `GetSurface(wgpu.Instance, ^SDL.Window) -> wgpu.Surface`.
|
||||
The procedure will call the needed target specific procedures and return a surface configured
|
||||
for the given window.
|
||||
|
||||
**GLFW Glue**
|
||||
|
||||
There is an inner package `glfwglue` that can be used to glue together WGPU and GLFW.
|
||||
It exports one procedure `GetSurface(wgpu.Instance, glfw.WindowHandle) -> wgpu.Surface`.
|
||||
@@ -44,14 +53,7 @@ for the given window.
|
||||
Do note that wgpu does not require GLFW, you can use native windows or another windowing library too.
|
||||
For that you can take inspiration from `glfwglue` on glueing them together.
|
||||
|
||||
## SDL2 Glue
|
||||
|
||||
There is an inner package `sdl2glue` that can be used to glue together WGPU and SDL2.
|
||||
It exports one procedure `GetSurface(wgpu.Instance, ^sdl2.Window) -> wgpu.Surface`.
|
||||
The procedure will call the needed target specific procedures and return a surface configured
|
||||
for the given window.
|
||||
|
||||
### Wayland
|
||||
**GLFW and Wayland**
|
||||
|
||||
GLFW supports Wayland from version 3.4 onwards and only if it is compiled with `-DGLFW_EXPOSE_NATIVE_WAYLAND`.
|
||||
|
||||
@@ -59,3 +61,5 @@ Odin links against your system's glfw library (probably installed through a pack
|
||||
If that version is lower than 3.4 or hasn't been compiled with the previously mentioned define,
|
||||
you will have to compile glfw from source yourself and adjust the `foreign import` declarations in `vendor:glfw/bindings` to
|
||||
point to it.
|
||||
*/
|
||||
package wgpu
|
||||
Vendored
-17
@@ -1,17 +0,0 @@
|
||||
FILES := $(wildcard *)
|
||||
|
||||
# NOTE: changing this requires changing the same values in the `web/index.html`.
|
||||
INITIAL_MEMORY_PAGES := 2000
|
||||
MAX_MEMORY_PAGES := 65536
|
||||
|
||||
PAGE_SIZE := 65536
|
||||
INITIAL_MEMORY_BYTES := $(shell expr $(INITIAL_MEMORY_PAGES) \* $(PAGE_SIZE))
|
||||
MAX_MEMORY_BYTES := $(shell expr $(MAX_MEMORY_PAGES) \* $(PAGE_SIZE))
|
||||
|
||||
web/triangle.wasm: $(FILES) ../../wgpu.js ../../../../core/sys/wasm/js/odin.js
|
||||
odin build . \
|
||||
-target:js_wasm32 -out:web/triangle.wasm -o:size \
|
||||
-extra-linker-flags:"--export-table --import-memory --initial-memory=$(INITIAL_MEMORY_BYTES) --max-memory=$(MAX_MEMORY_BYTES)"
|
||||
|
||||
cp ../../wgpu.js web/wgpu.js
|
||||
cp ../../../../core/sys/wasm/js/odin.js web/odin.js
|
||||
Vendored
-12
@@ -1,12 +0,0 @@
|
||||
REM NOTE: changing this requires changing the same values in the `web/index.html`.
|
||||
set INITIAL_MEMORY_PAGES=2000
|
||||
set MAX_MEMORY_PAGES=65536
|
||||
|
||||
set PAGE_SIZE=65536
|
||||
set /a INITIAL_MEMORY_BYTES=%INITIAL_MEMORY_PAGES% * %PAGE_SIZE%
|
||||
set /a MAX_MEMORY_BYTES=%MAX_MEMORY_PAGES% * %PAGE_SIZE%
|
||||
|
||||
call odin.exe build . -target:js_wasm32 -out:web/triangle.wasm -o:size -extra-linker-flags:"--export-table --import-memory --initial-memory=%INITIAL_MEMORY_BYTES% --max-memory=%MAX_MEMORY_BYTES%"
|
||||
|
||||
copy "..\..\wgpu.js" "web\wgpu.js"
|
||||
copy "..\..\..\..\core\sys\wasm\js\odin.js" "web\odin.js"
|
||||
Vendored
-189
@@ -1,189 +0,0 @@
|
||||
package vendor_wgpu_example_triangle
|
||||
|
||||
import "base:runtime"
|
||||
|
||||
import "core:fmt"
|
||||
|
||||
import "vendor:wgpu"
|
||||
|
||||
State :: struct {
|
||||
ctx: runtime.Context,
|
||||
os: OS,
|
||||
|
||||
instance: wgpu.Instance,
|
||||
surface: wgpu.Surface,
|
||||
adapter: wgpu.Adapter,
|
||||
device: wgpu.Device,
|
||||
config: wgpu.SurfaceConfiguration,
|
||||
queue: wgpu.Queue,
|
||||
module: wgpu.ShaderModule,
|
||||
pipeline_layout: wgpu.PipelineLayout,
|
||||
pipeline: wgpu.RenderPipeline,
|
||||
}
|
||||
|
||||
@(private="file")
|
||||
state: State
|
||||
|
||||
main :: proc() {
|
||||
state.ctx = context
|
||||
|
||||
os_init(&state.os)
|
||||
|
||||
state.instance = wgpu.CreateInstance(nil)
|
||||
if state.instance == nil {
|
||||
panic("WebGPU is not supported")
|
||||
}
|
||||
state.surface = os_get_surface(&state.os, state.instance)
|
||||
|
||||
wgpu.InstanceRequestAdapter(state.instance, &{ compatibleSurface = state.surface }, on_adapter, nil)
|
||||
|
||||
on_adapter :: proc "c" (status: wgpu.RequestAdapterStatus, adapter: wgpu.Adapter, message: cstring, userdata: rawptr) {
|
||||
context = state.ctx
|
||||
if status != .Success || adapter == nil {
|
||||
fmt.panicf("request adapter failure: [%v] %s", status, message)
|
||||
}
|
||||
state.adapter = adapter
|
||||
wgpu.AdapterRequestDevice(adapter, nil, on_device)
|
||||
}
|
||||
|
||||
on_device :: proc "c" (status: wgpu.RequestDeviceStatus, device: wgpu.Device, message: cstring, userdata: rawptr) {
|
||||
context = state.ctx
|
||||
if status != .Success || device == nil {
|
||||
fmt.panicf("request device failure: [%v] %s", status, message)
|
||||
}
|
||||
state.device = device
|
||||
|
||||
width, height := os_get_render_bounds(&state.os)
|
||||
|
||||
state.config = wgpu.SurfaceConfiguration {
|
||||
device = state.device,
|
||||
usage = { .RenderAttachment },
|
||||
format = .BGRA8Unorm,
|
||||
width = width,
|
||||
height = height,
|
||||
presentMode = .Fifo,
|
||||
alphaMode = .Opaque,
|
||||
}
|
||||
wgpu.SurfaceConfigure(state.surface, &state.config)
|
||||
|
||||
state.queue = wgpu.DeviceGetQueue(state.device)
|
||||
|
||||
shader :: `
|
||||
@vertex
|
||||
fn vs_main(@builtin(vertex_index) in_vertex_index: u32) -> @builtin(position) vec4<f32> {
|
||||
let x = f32(i32(in_vertex_index) - 1);
|
||||
let y = f32(i32(in_vertex_index & 1u) * 2 - 1);
|
||||
return vec4<f32>(x, y, 0.0, 1.0);
|
||||
}
|
||||
|
||||
@fragment
|
||||
fn fs_main() -> @location(0) vec4<f32> {
|
||||
return vec4<f32>(1.0, 0.0, 0.0, 1.0);
|
||||
}`
|
||||
|
||||
state.module = wgpu.DeviceCreateShaderModule(state.device, &{
|
||||
nextInChain = &wgpu.ShaderModuleWGSLDescriptor{
|
||||
sType = .ShaderModuleWGSLDescriptor,
|
||||
code = shader,
|
||||
},
|
||||
})
|
||||
|
||||
state.pipeline_layout = wgpu.DeviceCreatePipelineLayout(state.device, &{})
|
||||
state.pipeline = wgpu.DeviceCreateRenderPipeline(state.device, &{
|
||||
layout = state.pipeline_layout,
|
||||
vertex = {
|
||||
module = state.module,
|
||||
entryPoint = "vs_main",
|
||||
},
|
||||
fragment = &{
|
||||
module = state.module,
|
||||
entryPoint = "fs_main",
|
||||
targetCount = 1,
|
||||
targets = &wgpu.ColorTargetState{
|
||||
format = .BGRA8Unorm,
|
||||
writeMask = wgpu.ColorWriteMaskFlags_All,
|
||||
},
|
||||
},
|
||||
primitive = {
|
||||
topology = .TriangleList,
|
||||
|
||||
},
|
||||
multisample = {
|
||||
count = 1,
|
||||
mask = 0xFFFFFFFF,
|
||||
},
|
||||
})
|
||||
|
||||
os_run(&state.os)
|
||||
}
|
||||
}
|
||||
|
||||
resize :: proc "c" () {
|
||||
context = state.ctx
|
||||
|
||||
state.config.width, state.config.height = os_get_render_bounds(&state.os)
|
||||
wgpu.SurfaceConfigure(state.surface, &state.config)
|
||||
}
|
||||
|
||||
frame :: proc "c" (dt: f32) {
|
||||
context = state.ctx
|
||||
|
||||
surface_texture := wgpu.SurfaceGetCurrentTexture(state.surface)
|
||||
switch surface_texture.status {
|
||||
case .Success:
|
||||
// All good, could check for `surface_texture.suboptimal` here.
|
||||
case .Timeout, .Outdated, .Lost:
|
||||
// Skip this frame, and re-configure surface.
|
||||
if surface_texture.texture != nil {
|
||||
wgpu.TextureRelease(surface_texture.texture)
|
||||
}
|
||||
resize()
|
||||
return
|
||||
case .OutOfMemory, .DeviceLost:
|
||||
// Fatal error
|
||||
fmt.panicf("[triangle] get_current_texture status=%v", surface_texture.status)
|
||||
}
|
||||
defer wgpu.TextureRelease(surface_texture.texture)
|
||||
|
||||
frame := wgpu.TextureCreateView(surface_texture.texture, nil)
|
||||
defer wgpu.TextureViewRelease(frame)
|
||||
|
||||
command_encoder := wgpu.DeviceCreateCommandEncoder(state.device, nil)
|
||||
defer wgpu.CommandEncoderRelease(command_encoder)
|
||||
|
||||
render_pass_encoder := wgpu.CommandEncoderBeginRenderPass(
|
||||
command_encoder, &{
|
||||
colorAttachmentCount = 1,
|
||||
colorAttachments = &wgpu.RenderPassColorAttachment{
|
||||
view = frame,
|
||||
loadOp = .Clear,
|
||||
storeOp = .Store,
|
||||
depthSlice = wgpu.DEPTH_SLICE_UNDEFINED,
|
||||
clearValue = { 0, 1, 0, 1 },
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
wgpu.RenderPassEncoderSetPipeline(render_pass_encoder, state.pipeline)
|
||||
wgpu.RenderPassEncoderDraw(render_pass_encoder, vertexCount=3, instanceCount=1, firstVertex=0, firstInstance=0)
|
||||
|
||||
wgpu.RenderPassEncoderEnd(render_pass_encoder)
|
||||
wgpu.RenderPassEncoderRelease(render_pass_encoder)
|
||||
|
||||
command_buffer := wgpu.CommandEncoderFinish(command_encoder, nil)
|
||||
defer wgpu.CommandBufferRelease(command_buffer)
|
||||
|
||||
wgpu.QueueSubmit(state.queue, { command_buffer })
|
||||
wgpu.SurfacePresent(state.surface)
|
||||
}
|
||||
|
||||
finish :: proc() {
|
||||
wgpu.RenderPipelineRelease(state.pipeline)
|
||||
wgpu.PipelineLayoutRelease(state.pipeline_layout)
|
||||
wgpu.ShaderModuleRelease(state.module)
|
||||
wgpu.QueueRelease(state.queue)
|
||||
wgpu.DeviceRelease(state.device)
|
||||
wgpu.AdapterRelease(state.adapter)
|
||||
wgpu.SurfaceRelease(state.surface)
|
||||
wgpu.InstanceRelease(state.instance)
|
||||
}
|
||||
-55
@@ -1,55 +0,0 @@
|
||||
#+build !js
|
||||
package vendor_wgpu_example_triangle
|
||||
|
||||
import "core:time"
|
||||
|
||||
import "vendor:glfw"
|
||||
import "vendor:wgpu"
|
||||
import "vendor:wgpu/glfwglue"
|
||||
|
||||
OS :: struct {
|
||||
window: glfw.WindowHandle,
|
||||
}
|
||||
|
||||
os_init :: proc(os: ^OS) {
|
||||
if !glfw.Init() {
|
||||
panic("[glfw] init failure")
|
||||
}
|
||||
|
||||
glfw.WindowHint(glfw.CLIENT_API, glfw.NO_API)
|
||||
os.window = glfw.CreateWindow(960, 540, "WGPU Native Triangle", nil, nil)
|
||||
|
||||
glfw.SetFramebufferSizeCallback(os.window, size_callback)
|
||||
}
|
||||
|
||||
os_run :: proc(os: ^OS) {
|
||||
dt: f32
|
||||
|
||||
for !glfw.WindowShouldClose(os.window) {
|
||||
start := time.tick_now()
|
||||
|
||||
glfw.PollEvents()
|
||||
frame(dt)
|
||||
|
||||
dt = f32(time.duration_seconds(time.tick_since(start)))
|
||||
}
|
||||
|
||||
finish()
|
||||
|
||||
glfw.DestroyWindow(os.window)
|
||||
glfw.Terminate()
|
||||
}
|
||||
|
||||
os_get_render_bounds :: proc(os: ^OS) -> (width, height: u32) {
|
||||
iw, ih := glfw.GetWindowSize(os.window)
|
||||
return u32(iw), u32(ih)
|
||||
}
|
||||
|
||||
os_get_surface :: proc(os: ^OS, instance: wgpu.Instance) -> wgpu.Surface {
|
||||
return glfwglue.GetSurface(instance, os.window)
|
||||
}
|
||||
|
||||
@(private="file")
|
||||
size_callback :: proc "c" (window: glfw.WindowHandle, width, height: i32) {
|
||||
resize()
|
||||
}
|
||||
Vendored
-61
@@ -1,61 +0,0 @@
|
||||
package vendor_wgpu_example_triangle
|
||||
|
||||
import "core:sys/wasm/js"
|
||||
|
||||
import "vendor:wgpu"
|
||||
|
||||
OS :: struct {
|
||||
initialized: bool,
|
||||
}
|
||||
|
||||
@(private="file")
|
||||
g_os: ^OS
|
||||
|
||||
os_init :: proc(os: ^OS) {
|
||||
g_os = os
|
||||
assert(js.add_window_event_listener(.Resize, nil, size_callback))
|
||||
}
|
||||
|
||||
// NOTE: frame loop is done by the runtime.js repeatedly calling `step`.
|
||||
os_run :: proc(os: ^OS) {
|
||||
os.initialized = true
|
||||
}
|
||||
|
||||
os_get_render_bounds :: proc(os: ^OS) -> (width, height: u32) {
|
||||
rect := js.get_bounding_client_rect("body")
|
||||
return u32(rect.width), u32(rect.height)
|
||||
}
|
||||
|
||||
os_get_surface :: proc(os: ^OS, instance: wgpu.Instance) -> wgpu.Surface {
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromCanvasHTMLSelector{
|
||||
sType = .SurfaceDescriptorFromCanvasHTMLSelector,
|
||||
selector = "#wgpu-canvas",
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@(private="file", export)
|
||||
step :: proc(dt: f32) -> bool {
|
||||
if !g_os.initialized {
|
||||
return true
|
||||
}
|
||||
|
||||
frame(dt)
|
||||
return true
|
||||
}
|
||||
|
||||
@(private="file", fini)
|
||||
os_fini :: proc() {
|
||||
js.remove_window_event_listener(.Resize, nil, size_callback)
|
||||
|
||||
finish()
|
||||
}
|
||||
|
||||
@(private="file")
|
||||
size_callback :: proc(e: js.Event) {
|
||||
resize()
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="height: 100%;">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>WGPU WASM Triangle</title>
|
||||
</head>
|
||||
<body id="body" style="height: 100%; padding: 0; margin: 0; overflow: hidden;">
|
||||
<canvas id="wgpu-canvas"></canvas>
|
||||
|
||||
<script type="text/javascript" src="odin.js"></script>
|
||||
<script type="text/javascript" src="wgpu.js"></script>
|
||||
<script type="text/javascript">
|
||||
const mem = new WebAssembly.Memory({ initial: 2000, maximum: 65536, shared: false });
|
||||
const memInterface = new odin.WasmMemoryInterface();
|
||||
memInterface.setMemory(mem);
|
||||
|
||||
const wgpuInterface = new odin.WebGPUInterface(memInterface);
|
||||
|
||||
odin.runWasm("triangle.wasm", null, { wgpu: wgpuInterface.getInterface() }, memInterface, /*intSize=8*/);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
-17
@@ -1,17 +0,0 @@
|
||||
FILES := $(wildcard *)
|
||||
|
||||
# NOTE: changing this requires changing the same values in the `web/index.html`.
|
||||
INITIAL_MEMORY_PAGES := 2000
|
||||
MAX_MEMORY_PAGES := 65536
|
||||
|
||||
PAGE_SIZE := 65536
|
||||
INITIAL_MEMORY_BYTES := $(shell expr $(INITIAL_MEMORY_PAGES) \* $(PAGE_SIZE))
|
||||
MAX_MEMORY_BYTES := $(shell expr $(MAX_MEMORY_PAGES) \* $(PAGE_SIZE))
|
||||
|
||||
web/triangle.wasm: $(FILES) ../../wgpu.js ../../../../core/sys/wasm/js/odin.js
|
||||
odin build . \
|
||||
-target:js_wasm32 -out:web/triangle.wasm -o:size \
|
||||
-extra-linker-flags:"--export-table --import-memory --initial-memory=$(INITIAL_MEMORY_BYTES) --max-memory=$(MAX_MEMORY_BYTES)"
|
||||
|
||||
cp ../../wgpu.js web/wgpu.js
|
||||
cp ../../../../core/sys/wasm/js/odin.js web/odin.js
|
||||
Vendored
-12
@@ -1,12 +0,0 @@
|
||||
REM NOTE: changing this requires changing the same values in the `web/index.html`.
|
||||
set INITIAL_MEMORY_PAGES=2000
|
||||
set MAX_MEMORY_PAGES=65536
|
||||
|
||||
set PAGE_SIZE=65536
|
||||
set /a INITIAL_MEMORY_BYTES=%INITIAL_MEMORY_PAGES% * %PAGE_SIZE%
|
||||
set /a MAX_MEMORY_BYTES=%MAX_MEMORY_PAGES% * %PAGE_SIZE%
|
||||
|
||||
call odin.exe build . -target:js_wasm32 -out:web/triangle.wasm -o:size -extra-linker-flags:"--export-table --import-memory --initial-memory=%INITIAL_MEMORY_BYTES% --max-memory=%MAX_MEMORY_BYTES%"
|
||||
|
||||
copy "..\..\wgpu.js" "web\wgpu.js"
|
||||
copy "..\..\..\..\core\sys\wasm\js\odin.js" "web\odin.js"
|
||||
Vendored
-189
@@ -1,189 +0,0 @@
|
||||
package vendor_wgpu_example_triangle
|
||||
|
||||
import "base:runtime"
|
||||
|
||||
import "core:fmt"
|
||||
|
||||
import "vendor:wgpu"
|
||||
|
||||
State :: struct {
|
||||
ctx: runtime.Context,
|
||||
os: OS,
|
||||
|
||||
instance: wgpu.Instance,
|
||||
surface: wgpu.Surface,
|
||||
adapter: wgpu.Adapter,
|
||||
device: wgpu.Device,
|
||||
config: wgpu.SurfaceConfiguration,
|
||||
queue: wgpu.Queue,
|
||||
module: wgpu.ShaderModule,
|
||||
pipeline_layout: wgpu.PipelineLayout,
|
||||
pipeline: wgpu.RenderPipeline,
|
||||
}
|
||||
|
||||
@(private="file")
|
||||
state: State
|
||||
|
||||
main :: proc() {
|
||||
state.ctx = context
|
||||
|
||||
os_init(&state.os)
|
||||
|
||||
state.instance = wgpu.CreateInstance(nil)
|
||||
if state.instance == nil {
|
||||
panic("WebGPU is not supported")
|
||||
}
|
||||
state.surface = os_get_surface(&state.os, state.instance)
|
||||
|
||||
wgpu.InstanceRequestAdapter(state.instance, &{ compatibleSurface = state.surface }, on_adapter, nil)
|
||||
|
||||
on_adapter :: proc "c" (status: wgpu.RequestAdapterStatus, adapter: wgpu.Adapter, message: cstring, userdata: rawptr) {
|
||||
context = state.ctx
|
||||
if status != .Success || adapter == nil {
|
||||
fmt.panicf("request adapter failure: [%v] %s", status, message)
|
||||
}
|
||||
state.adapter = adapter
|
||||
wgpu.AdapterRequestDevice(adapter, nil, on_device)
|
||||
}
|
||||
|
||||
on_device :: proc "c" (status: wgpu.RequestDeviceStatus, device: wgpu.Device, message: cstring, userdata: rawptr) {
|
||||
context = state.ctx
|
||||
if status != .Success || device == nil {
|
||||
fmt.panicf("request device failure: [%v] %s", status, message)
|
||||
}
|
||||
state.device = device
|
||||
|
||||
width, height := os_get_render_bounds(&state.os)
|
||||
|
||||
state.config = wgpu.SurfaceConfiguration {
|
||||
device = state.device,
|
||||
usage = { .RenderAttachment },
|
||||
format = .BGRA8Unorm,
|
||||
width = width,
|
||||
height = height,
|
||||
presentMode = .Fifo,
|
||||
alphaMode = .Opaque,
|
||||
}
|
||||
wgpu.SurfaceConfigure(state.surface, &state.config)
|
||||
|
||||
state.queue = wgpu.DeviceGetQueue(state.device)
|
||||
|
||||
shader :: `
|
||||
@vertex
|
||||
fn vs_main(@builtin(vertex_index) in_vertex_index: u32) -> @builtin(position) vec4<f32> {
|
||||
let x = f32(i32(in_vertex_index) - 1);
|
||||
let y = f32(i32(in_vertex_index & 1u) * 2 - 1);
|
||||
return vec4<f32>(x, y, 0.0, 1.0);
|
||||
}
|
||||
|
||||
@fragment
|
||||
fn fs_main() -> @location(0) vec4<f32> {
|
||||
return vec4<f32>(1.0, 0.0, 0.0, 1.0);
|
||||
}`
|
||||
|
||||
state.module = wgpu.DeviceCreateShaderModule(state.device, &{
|
||||
nextInChain = &wgpu.ShaderModuleWGSLDescriptor{
|
||||
sType = .ShaderModuleWGSLDescriptor,
|
||||
code = shader,
|
||||
},
|
||||
})
|
||||
|
||||
state.pipeline_layout = wgpu.DeviceCreatePipelineLayout(state.device, &{})
|
||||
state.pipeline = wgpu.DeviceCreateRenderPipeline(state.device, &{
|
||||
layout = state.pipeline_layout,
|
||||
vertex = {
|
||||
module = state.module,
|
||||
entryPoint = "vs_main",
|
||||
},
|
||||
fragment = &{
|
||||
module = state.module,
|
||||
entryPoint = "fs_main",
|
||||
targetCount = 1,
|
||||
targets = &wgpu.ColorTargetState{
|
||||
format = .BGRA8Unorm,
|
||||
writeMask = wgpu.ColorWriteMaskFlags_All,
|
||||
},
|
||||
},
|
||||
primitive = {
|
||||
topology = .TriangleList,
|
||||
|
||||
},
|
||||
multisample = {
|
||||
count = 1,
|
||||
mask = 0xFFFFFFFF,
|
||||
},
|
||||
})
|
||||
|
||||
os_run(&state.os)
|
||||
}
|
||||
}
|
||||
|
||||
resize :: proc "c" () {
|
||||
context = state.ctx
|
||||
|
||||
state.config.width, state.config.height = os_get_render_bounds(&state.os)
|
||||
wgpu.SurfaceConfigure(state.surface, &state.config)
|
||||
}
|
||||
|
||||
frame :: proc "c" (dt: f32) {
|
||||
context = state.ctx
|
||||
|
||||
surface_texture := wgpu.SurfaceGetCurrentTexture(state.surface)
|
||||
switch surface_texture.status {
|
||||
case .Success:
|
||||
// All good, could check for `surface_texture.suboptimal` here.
|
||||
case .Timeout, .Outdated, .Lost:
|
||||
// Skip this frame, and re-configure surface.
|
||||
if surface_texture.texture != nil {
|
||||
wgpu.TextureRelease(surface_texture.texture)
|
||||
}
|
||||
resize()
|
||||
return
|
||||
case .OutOfMemory, .DeviceLost:
|
||||
// Fatal error
|
||||
fmt.panicf("[triangle] get_current_texture status=%v", surface_texture.status)
|
||||
}
|
||||
defer wgpu.TextureRelease(surface_texture.texture)
|
||||
|
||||
frame := wgpu.TextureCreateView(surface_texture.texture, nil)
|
||||
defer wgpu.TextureViewRelease(frame)
|
||||
|
||||
command_encoder := wgpu.DeviceCreateCommandEncoder(state.device, nil)
|
||||
defer wgpu.CommandEncoderRelease(command_encoder)
|
||||
|
||||
render_pass_encoder := wgpu.CommandEncoderBeginRenderPass(
|
||||
command_encoder, &{
|
||||
colorAttachmentCount = 1,
|
||||
colorAttachments = &wgpu.RenderPassColorAttachment{
|
||||
view = frame,
|
||||
loadOp = .Clear,
|
||||
storeOp = .Store,
|
||||
depthSlice = wgpu.DEPTH_SLICE_UNDEFINED,
|
||||
clearValue = { 0, 1, 0, 1 },
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
wgpu.RenderPassEncoderSetPipeline(render_pass_encoder, state.pipeline)
|
||||
wgpu.RenderPassEncoderDraw(render_pass_encoder, vertexCount=3, instanceCount=1, firstVertex=0, firstInstance=0)
|
||||
|
||||
wgpu.RenderPassEncoderEnd(render_pass_encoder)
|
||||
wgpu.RenderPassEncoderRelease(render_pass_encoder)
|
||||
|
||||
command_buffer := wgpu.CommandEncoderFinish(command_encoder, nil)
|
||||
defer wgpu.CommandBufferRelease(command_buffer)
|
||||
|
||||
wgpu.QueueSubmit(state.queue, { command_buffer })
|
||||
wgpu.SurfacePresent(state.surface)
|
||||
}
|
||||
|
||||
finish :: proc() {
|
||||
wgpu.RenderPipelineRelease(state.pipeline)
|
||||
wgpu.PipelineLayoutRelease(state.pipeline_layout)
|
||||
wgpu.ShaderModuleRelease(state.module)
|
||||
wgpu.QueueRelease(state.queue)
|
||||
wgpu.DeviceRelease(state.device)
|
||||
wgpu.AdapterRelease(state.adapter)
|
||||
wgpu.SurfaceRelease(state.surface)
|
||||
wgpu.InstanceRelease(state.instance)
|
||||
}
|
||||
Vendored
-61
@@ -1,61 +0,0 @@
|
||||
package vendor_wgpu_example_triangle
|
||||
|
||||
import "core:sys/wasm/js"
|
||||
|
||||
import "vendor:wgpu"
|
||||
|
||||
OS :: struct {
|
||||
initialized: bool,
|
||||
}
|
||||
|
||||
@(private="file")
|
||||
g_os: ^OS
|
||||
|
||||
os_init :: proc(os: ^OS) {
|
||||
g_os = os
|
||||
assert(js.add_window_event_listener(.Resize, nil, size_callback))
|
||||
}
|
||||
|
||||
// NOTE: frame loop is done by the runtime.js repeatedly calling `step`.
|
||||
os_run :: proc(os: ^OS) {
|
||||
os.initialized = true
|
||||
}
|
||||
|
||||
os_get_render_bounds :: proc(os: ^OS) -> (width, height: u32) {
|
||||
rect := js.get_bounding_client_rect("body")
|
||||
return u32(rect.width), u32(rect.height)
|
||||
}
|
||||
|
||||
os_get_surface :: proc(os: ^OS, instance: wgpu.Instance) -> wgpu.Surface {
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromCanvasHTMLSelector{
|
||||
sType = .SurfaceDescriptorFromCanvasHTMLSelector,
|
||||
selector = "#wgpu-canvas",
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@(private="file", export)
|
||||
step :: proc(dt: f32) -> bool {
|
||||
if !g_os.initialized {
|
||||
return true
|
||||
}
|
||||
|
||||
frame(dt)
|
||||
return true
|
||||
}
|
||||
|
||||
@(private="file", fini)
|
||||
os_fini :: proc() {
|
||||
js.remove_window_event_listener(.Resize, nil, size_callback)
|
||||
|
||||
finish()
|
||||
}
|
||||
|
||||
@(private="file")
|
||||
size_callback :: proc(e: js.Event) {
|
||||
resize()
|
||||
}
|
||||
-85
@@ -1,85 +0,0 @@
|
||||
#+build !js
|
||||
package vendor_wgpu_example_triangle
|
||||
|
||||
import "core:c"
|
||||
import "core:fmt"
|
||||
|
||||
import "vendor:sdl2"
|
||||
import "vendor:wgpu"
|
||||
import "vendor:wgpu/sdl2glue"
|
||||
|
||||
OS :: struct {
|
||||
window: ^sdl2.Window,
|
||||
}
|
||||
|
||||
os_init :: proc(os: ^OS) {
|
||||
sdl_flags := sdl2.InitFlags{.VIDEO, .JOYSTICK, .GAMECONTROLLER, .EVENTS}
|
||||
if res := sdl2.Init(sdl_flags); res != 0 {
|
||||
fmt.eprintfln("ERROR: Failed to initialize SDL: [%s]", sdl2.GetError())
|
||||
return
|
||||
}
|
||||
|
||||
window_flags: sdl2.WindowFlags = {.SHOWN, .ALLOW_HIGHDPI, .RESIZABLE}
|
||||
os.window = sdl2.CreateWindow(
|
||||
"WGPU Native Triangle",
|
||||
sdl2.WINDOWPOS_CENTERED,
|
||||
sdl2.WINDOWPOS_CENTERED,
|
||||
960,
|
||||
540,
|
||||
window_flags,
|
||||
)
|
||||
if os.window == nil {
|
||||
fmt.eprintfln("ERROR: Failed to create the SDL Window: [%s]", sdl2.GetError())
|
||||
return
|
||||
}
|
||||
|
||||
sdl2.AddEventWatch(size_callback, nil)
|
||||
}
|
||||
|
||||
os_run :: proc(os: ^OS) {
|
||||
now := sdl2.GetPerformanceCounter()
|
||||
last : u64
|
||||
dt: f32
|
||||
main_loop: for {
|
||||
last = now
|
||||
now = sdl2.GetPerformanceCounter()
|
||||
dt = f32((now - last) * 1000) / f32(sdl2.GetPerformanceFrequency())
|
||||
|
||||
e: sdl2.Event
|
||||
|
||||
for sdl2.PollEvent(&e) {
|
||||
#partial switch (e.type) {
|
||||
case .QUIT:
|
||||
break main_loop
|
||||
}
|
||||
}
|
||||
|
||||
frame(dt)
|
||||
}
|
||||
|
||||
sdl2.DestroyWindow(os.window)
|
||||
sdl2.Quit()
|
||||
|
||||
finish()
|
||||
}
|
||||
|
||||
|
||||
os_get_render_bounds :: proc(os: ^OS) -> (width, height: u32) {
|
||||
iw, ih: c.int
|
||||
sdl2.GetWindowSize(os.window, &iw, &ih)
|
||||
return u32(iw), u32(ih)
|
||||
}
|
||||
|
||||
os_get_surface :: proc(os: ^OS, instance: wgpu.Instance) -> wgpu.Surface {
|
||||
return sdl2glue.GetSurface(instance, os.window)
|
||||
}
|
||||
|
||||
@(private="file")
|
||||
size_callback :: proc "c" (userdata: rawptr, event: ^sdl2.Event) -> c.int {
|
||||
if event.type == .WINDOWEVENT {
|
||||
if event.window.event == .SIZE_CHANGED || event.window.event == .RESIZED {
|
||||
resize()
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="height: 100%;">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>WGPU WASM Triangle</title>
|
||||
</head>
|
||||
<body id="body" style="height: 100%; padding: 0; margin: 0; overflow: hidden;">
|
||||
<canvas id="wgpu-canvas"></canvas>
|
||||
|
||||
<script type="text/javascript" src="odin.js"></script>
|
||||
<script type="text/javascript" src="wgpu.js"></script>
|
||||
<script type="text/javascript">
|
||||
const mem = new WebAssembly.Memory({ initial: 2000, maximum: 65536, shared: false });
|
||||
const memInterface = new odin.WasmMemoryInterface();
|
||||
memInterface.setMemory(mem);
|
||||
|
||||
const wgpuInterface = new odin.WebGPUInterface(memInterface);
|
||||
|
||||
odin.runWasm("triangle.wasm", null, { wgpu: wgpuInterface.getInterface() }, memInterface, /*intSize=8*/);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
+2
-2
@@ -12,9 +12,9 @@ GetSurface :: proc(instance: wgpu.Instance, window: glfw.WindowHandle) -> wgpu.S
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromMetalLayer{
|
||||
nextInChain = &wgpu.SurfaceSourceMetalLayer{
|
||||
chain = wgpu.ChainedStruct{
|
||||
sType = .SurfaceDescriptorFromMetalLayer,
|
||||
sType = .SurfaceSourceMetalLayer,
|
||||
},
|
||||
layer = rawptr(metal_layer),
|
||||
},
|
||||
|
||||
Vendored
+4
-4
@@ -11,9 +11,9 @@ GetSurface :: proc(instance: wgpu.Instance, window: glfw.WindowHandle) -> wgpu.S
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromWaylandSurface{
|
||||
nextInChain = &wgpu.SurfaceSourceWaylandSurface{
|
||||
chain = {
|
||||
sType = .SurfaceDescriptorFromWaylandSurface,
|
||||
sType = .SurfaceSourceWaylandSurface,
|
||||
},
|
||||
display = display,
|
||||
surface = surface,
|
||||
@@ -32,9 +32,9 @@ GetSurface :: proc(instance: wgpu.Instance, window: glfw.WindowHandle) -> wgpu.S
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromXlibWindow{
|
||||
nextInChain = &wgpu.SurfaceSourceXlibWindow{
|
||||
chain = {
|
||||
sType = .SurfaceDescriptorFromXlibWindow,
|
||||
sType = .SurfaceSourceXlibWindow,
|
||||
},
|
||||
display = display,
|
||||
window = u64(window),
|
||||
|
||||
+2
-2
@@ -11,9 +11,9 @@ GetSurface :: proc(instance: wgpu.Instance, window: glfw.WindowHandle) -> wgpu.S
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromWindowsHWND{
|
||||
nextInChain = &wgpu.SurfaceSourceWindowsHWND{
|
||||
chain = wgpu.ChainedStruct{
|
||||
sType = .SurfaceDescriptorFromWindowsHWND,
|
||||
sType = .SurfaceSourceWindowsHWND,
|
||||
},
|
||||
hinstance = rawptr(hinstance),
|
||||
hwnd = rawptr(hwnd),
|
||||
|
||||
Vendored
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
-2
@@ -14,9 +14,9 @@ GetSurface :: proc(instance: wgpu.Instance, window: ^sdl2.Window) -> wgpu.Surfac
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromMetalLayer{
|
||||
nextInChain = &wgpu.SurfaceSourceMetalLayer{
|
||||
chain = wgpu.ChainedStruct{
|
||||
sType = .SurfaceDescriptorFromMetalLayer,
|
||||
sType = .SurfaceSourceMetalLayer,
|
||||
},
|
||||
layer = rawptr(metal_layer),
|
||||
},
|
||||
|
||||
Vendored
+4
-4
@@ -14,9 +14,9 @@ GetSurface :: proc(instance: wgpu.Instance, window: ^sdl2.Window) -> wgpu.Surfac
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromWaylandSurface{
|
||||
nextInChain = &wgpu.SurfaceSourceWaylandSurface{
|
||||
chain = {
|
||||
sType = .SurfaceDescriptorFromWaylandSurface,
|
||||
sType = .SurfaceSourceWaylandSurface,
|
||||
},
|
||||
display = display,
|
||||
surface = surface,
|
||||
@@ -29,9 +29,9 @@ GetSurface :: proc(instance: wgpu.Instance, window: ^sdl2.Window) -> wgpu.Surfac
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromXlibWindow{
|
||||
nextInChain = &wgpu.SurfaceSourceXlibWindow{
|
||||
chain = {
|
||||
sType = .SurfaceDescriptorFromXlibWindow,
|
||||
sType = .SurfaceSourceXlibWindow,
|
||||
},
|
||||
display = display,
|
||||
window = u64(window),
|
||||
|
||||
+2
-2
@@ -13,9 +13,9 @@ GetSurface :: proc(instance: wgpu.Instance, window: ^sdl2.Window) -> wgpu.Surfac
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceDescriptorFromWindowsHWND{
|
||||
nextInChain = &wgpu.SurfaceSourceWindowsHWND{
|
||||
chain = wgpu.ChainedStruct{
|
||||
sType = .SurfaceDescriptorFromWindowsHWND,
|
||||
sType = .SurfaceSourceWindowsHWND,
|
||||
},
|
||||
hinstance = rawptr(hinstance),
|
||||
hwnd = rawptr(hwnd),
|
||||
|
||||
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
#+build !linux
|
||||
#+build !windows
|
||||
#+build !darwin
|
||||
package wgpu_sdl3_glue
|
||||
|
||||
#panic("package wgpu/sdl3glue is not supported on the current target")
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package wgpu_sdl3_glue
|
||||
|
||||
import "vendor:sdl3"
|
||||
import "vendor:wgpu"
|
||||
|
||||
GetSurface :: proc(instance: wgpu.Instance, window: ^sdl3.Window) -> wgpu.Surface {
|
||||
view := sdl3.Metal_CreateView(window)
|
||||
layer := sdl3.Metal_GetLayer(view)
|
||||
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceSourceMetalLayer{
|
||||
chain = wgpu.ChainedStruct{
|
||||
sType = .SurfaceSourceMetalLayer,
|
||||
},
|
||||
layer = layer,
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
Vendored
+37
@@ -0,0 +1,37 @@
|
||||
package wgpu_sdl3_glue
|
||||
|
||||
import "vendor:sdl3"
|
||||
import "vendor:wgpu"
|
||||
|
||||
GetSurface :: proc(instance: wgpu.Instance, window: ^sdl3.Window) -> wgpu.Surface {
|
||||
switch sdl3.GetCurrentVideoDriver() {
|
||||
case "wayland":
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceSourceWaylandSurface{
|
||||
chain = {
|
||||
sType = .SurfaceSourceWaylandSurface,
|
||||
},
|
||||
display = sdl3.GetPointerProperty(sdl3.GetWindowProperties(window), sdl3.PROP_WINDOW_WAYLAND_DISPLAY_POINTER, nil),
|
||||
surface = sdl3.GetPointerProperty(sdl3.GetWindowProperties(window), sdl3.PROP_WINDOW_WAYLAND_SURFACE_POINTER, nil),
|
||||
},
|
||||
},
|
||||
)
|
||||
case "x11":
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceSourceXlibWindow{
|
||||
chain = {
|
||||
sType = .SurfaceSourceXlibWindow,
|
||||
},
|
||||
display = sdl3.GetPointerProperty(sdl3.GetWindowProperties(window), sdl3.PROP_WINDOW_X11_DISPLAY_POINTER, nil),
|
||||
window = cast(u64)sdl3.GetNumberProperty(sdl3.GetWindowProperties(window), sdl3.PROP_WINDOW_X11_WINDOW_NUMBER, 0),
|
||||
},
|
||||
},
|
||||
)
|
||||
case:
|
||||
panic("wgpu sdl3 glue: unsupported video driver, expected Wayland or X11")
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package wgpu_sdl3_glue
|
||||
|
||||
import "vendor:sdl3"
|
||||
import "vendor:wgpu"
|
||||
|
||||
GetSurface :: proc(instance: wgpu.Instance, window: ^sdl3.Window) -> wgpu.Surface {
|
||||
return wgpu.InstanceCreateSurface(
|
||||
instance,
|
||||
&wgpu.SurfaceDescriptor{
|
||||
nextInChain = &wgpu.SurfaceSourceWindowsHWND{
|
||||
chain = wgpu.ChainedStruct{
|
||||
sType = .SurfaceSourceWindowsHWND,
|
||||
},
|
||||
hinstance = sdl3.GetPointerProperty(sdl3.GetWindowProperties(window), sdl3.PROP_WINDOW_WIN32_INSTANCE_POINTER, nil),
|
||||
hwnd = sdl3.GetPointerProperty(sdl3.GetWindowProperties(window), sdl3.PROP_WINDOW_WIN32_HWND_POINTER, nil),
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
Vendored
+1043
-663
File diff suppressed because it is too large
Load Diff
Vendored
+656
-566
File diff suppressed because it is too large
Load Diff
Vendored
+57
@@ -0,0 +1,57 @@
|
||||
#+build !js
|
||||
package wgpu
|
||||
|
||||
@(link_prefix="wgpu")
|
||||
foreign libwgpu {
|
||||
@(link_name="wgpuGenerateReport")
|
||||
RawGenerateReport :: proc(instance: Instance, report: ^GlobalReport) ---
|
||||
@(link_name="wgpuInstanceEnumerateAdapters")
|
||||
RawInstanceEnumerateAdapters :: proc(instance: Instance, /* NULLABLE */ options: /* const */ ^InstanceEnumerateAdapterOptions, adapters: [^]Adapter) -> uint ---
|
||||
|
||||
@(link_name="wgpuQueueSubmitForIndex")
|
||||
RawQueueSubmitForIndex :: proc(queue: Queue, commandCount: uint, commands: [^]CommandBuffer) -> SubmissionIndex ---
|
||||
|
||||
// Returns true if the queue is empty, or false if there are more queue submissions still in flight.
|
||||
DevicePoll :: proc(device: Device, wait: b32, /* NULLABLE */ wrappedSubmissionIndex: /* const */ ^SubmissionIndex = nil) -> b32 ---
|
||||
DeviceCreateShaderModuleSpirV :: proc(device: Device, descriptor: ^ShaderModuleDescriptorSpirV) -> ShaderModule ---
|
||||
|
||||
SetLogCallback :: proc(callback: LogCallback, userdata: rawptr) ---
|
||||
|
||||
SetLogLevel :: proc(level: LogLevel) ---
|
||||
|
||||
GetVersion :: proc() -> u32 ---
|
||||
|
||||
RenderPassEncoderSetPushConstants :: proc(encoder: RenderPassEncoder, stages: ShaderStageFlags, offset: u32, sizeBytes: u32, data: rawptr) ---
|
||||
ComputePassEncoderSetPushConstants :: proc(encoder: ComputePassEncoder, offset: u32, sizeBytes: u32, data: rawptr) ---
|
||||
RenderBundleEncoderSetPushConstants :: proc(encoder: RenderBundleEncoder, stages: ShaderStageFlags, offset: u32, sizeBytes: u32, data: rawptr) ---
|
||||
|
||||
RenderPassEncoderMultiDrawIndirect :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count: u32) ---
|
||||
RenderPassEncoderMultiDrawIndexedIndirect :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count: u32) ---
|
||||
|
||||
RenderPassEncoderMultiDrawIndirectCount :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count_buffer: Buffer, count_buffer_offset: u64, max_count: u32) ---
|
||||
RenderPassEncoderMultiDrawIndexedIndirectCount :: proc(encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count_buffer: Buffer, count_buffer_offset: u64, max_count: u32) ---
|
||||
|
||||
ComputePassEncoderBeginPipelineStatisticsQuery :: proc(computePassEncoder: ComputePassEncoder, querySet: QuerySet, queryIndex: u32) ---
|
||||
ComputePassEncoderEndPipelineStatisticsQuery :: proc(computePassEncoder: ComputePassEncoder) ---
|
||||
RenderPassEncoderBeginPipelineStatisticsQuery :: proc(renderPassEncoder: RenderPassEncoder, querySet: QuerySet, queryIndex: u32) ---
|
||||
RenderPassEncoderEndPipelineStatisticsQuery :: proc(renderPassEncoder: RenderPassEncoder) ---
|
||||
|
||||
ComputePassEncoderWriteTimestamp :: proc(computePassEncoder: ComputePassEncoder, querySet: QuerySet, queryIndex: u32) ---
|
||||
RenderPassEncoderWriteTimestamp :: proc(renderPassEncoder: RenderPassEncoder, querySet: QuerySet, queryIndex: u32) ---
|
||||
}
|
||||
|
||||
GenerateReport :: proc "c" (instance: Instance) -> (report: GlobalReport) {
|
||||
RawGenerateReport(instance, &report)
|
||||
return
|
||||
}
|
||||
|
||||
InstanceEnumerateAdapters :: proc(instance: Instance, options: ^InstanceEnumerateAdapterOptions = nil, allocator := context.allocator) -> (adapters: []Adapter) {
|
||||
count := RawInstanceEnumerateAdapters(instance, options, nil)
|
||||
adapters = make([]Adapter, count, allocator)
|
||||
RawInstanceEnumerateAdapters(instance, options, raw_data(adapters))
|
||||
return
|
||||
}
|
||||
|
||||
QueueSubmitForIndex :: proc "c" (queue: Queue, commands: []CommandBuffer) -> SubmissionIndex {
|
||||
return RawQueueSubmitForIndex(queue, len(commands), raw_data(commands))
|
||||
}
|
||||
Vendored
+22
-30
@@ -2,6 +2,9 @@ package wgpu
|
||||
|
||||
import "base:runtime"
|
||||
|
||||
BINDINGS_VERSION :: [4]u8{24, 0, 0, 2}
|
||||
BINDINGS_VERSION_STRING :: "24.0.0.2"
|
||||
|
||||
LogLevel :: enum i32 {
|
||||
Off,
|
||||
Error,
|
||||
@@ -59,30 +62,21 @@ InstanceExtras :: struct {
|
||||
flags: InstanceFlags,
|
||||
dx12ShaderCompiler: Dx12Compiler,
|
||||
gles3MinorVersion: Gles3MinorVersion,
|
||||
dxilPath: cstring,
|
||||
dxcPath: cstring,
|
||||
dxilPath: StringView,
|
||||
dxcPath: StringView,
|
||||
}
|
||||
|
||||
DeviceExtras :: struct {
|
||||
using chain: ChainedStruct,
|
||||
tracePath: cstring,
|
||||
tracePath: StringView,
|
||||
}
|
||||
|
||||
NativeLimits :: struct {
|
||||
using chain: ChainedStructOut,
|
||||
maxPushConstantSize: u32,
|
||||
maxNonSamplerBindings: u32,
|
||||
}
|
||||
|
||||
RequiredLimitsExtras :: struct {
|
||||
using chain: ChainedStruct,
|
||||
limits: NativeLimits,
|
||||
}
|
||||
|
||||
SupportedLimitsExtras :: struct {
|
||||
using chain: ChainedStructOut,
|
||||
limits: NativeLimits,
|
||||
}
|
||||
|
||||
PushConstantRange :: struct {
|
||||
stages: ShaderStageFlags,
|
||||
start: u32,
|
||||
@@ -97,29 +91,29 @@ PipelineLayoutExtras :: struct {
|
||||
|
||||
SubmissionIndex :: distinct u64
|
||||
|
||||
WrappedSubmissionIndex :: struct {
|
||||
queue: Queue,
|
||||
submissionIndex: SubmissionIndex,
|
||||
}
|
||||
|
||||
ShaderDefine :: struct {
|
||||
name: cstring,
|
||||
value: cstring,
|
||||
name: StringView,
|
||||
value: StringView,
|
||||
}
|
||||
|
||||
ShaderModuleGLSLDescriptor :: struct {
|
||||
using chain: ChainedStruct,
|
||||
stage: ShaderStage,
|
||||
code: cstring,
|
||||
code: StringView,
|
||||
defineCount: uint,
|
||||
defines: [^]ShaderDefine `fmt:"v,defineCount"`,
|
||||
defines: /* const */ [^]ShaderDefine `fmt:"v,defineCount"`,
|
||||
}
|
||||
|
||||
ShaderModuleDescriptorSpirV :: struct {
|
||||
label: StringView,
|
||||
sourceSize: u32,
|
||||
source: /* const */ [^]u32 `fmt:"v,sourceSize"`,
|
||||
}
|
||||
|
||||
RegistryReport :: struct {
|
||||
numAllocated: uint,
|
||||
numKeptFromUser: uint,
|
||||
numReleasedFromUser: uint,
|
||||
numErrors: uint,
|
||||
elementSize: uint,
|
||||
}
|
||||
|
||||
@@ -135,6 +129,7 @@ HubReport :: struct {
|
||||
renderBundles: RegistryReport,
|
||||
renderPipelines: RegistryReport,
|
||||
computePipelines: RegistryReport,
|
||||
pipelineCaches: RegistryReport,
|
||||
querySets: RegistryReport,
|
||||
buffers: RegistryReport,
|
||||
textures: RegistryReport,
|
||||
@@ -144,11 +139,7 @@ HubReport :: struct {
|
||||
|
||||
GlobalReport :: struct {
|
||||
surfaces: RegistryReport,
|
||||
backendType: BackendType,
|
||||
vulkan: HubReport,
|
||||
metal: HubReport,
|
||||
dx12: HubReport,
|
||||
gl: HubReport,
|
||||
hub: HubReport,
|
||||
}
|
||||
|
||||
InstanceEnumerateAdapterOptions :: struct {
|
||||
@@ -179,10 +170,10 @@ QuerySetDescriptorExtras :: struct {
|
||||
|
||||
SurfaceConfigurationExtras :: struct {
|
||||
using chain: ChainedStruct,
|
||||
desiredMaximumFrameLatency: i32,
|
||||
desiredMaximumFrameLatency: u32,
|
||||
}
|
||||
|
||||
LogCallback :: #type proc "c" (level: LogLevel, message: cstring, userdata: rawptr)
|
||||
LogCallback :: #type proc "c" (level: LogLevel, message: StringView, userdata: rawptr)
|
||||
|
||||
// Wrappers
|
||||
|
||||
@@ -210,3 +201,4 @@ ConvertLogLevel :: proc {
|
||||
ConvertOdinToWGPULogLevel,
|
||||
ConvertWGPUToOdinLogLevel,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user