Constantine Shablya
0937a02d96
vulkan: rename vk_physical_device_features.py to vk_physical_device_features_gen.py
...
In-line with other files that generate source code
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333 >
2023-05-03 03:27:54 +00:00
Constantine Shablya
9cf1cdfaa8
vulkan: put TEMPLATE_H before TEMPLATE_C
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333 >
2023-05-03 03:27:54 +00:00
Constantine Shablya
005cfc63fc
vulkan: put interesting code before boring code
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333 >
2023-05-03 03:27:54 +00:00
Constantine Shablya
64f4b277ea
vulkan: inline vk_get_physical_device_features into vk_common_GetPhysicalDeviceFeatures2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333 >
2023-05-03 03:27:54 +00:00
Michel Zou
cb282b6a81
vk/entry_points:: fix mingw build
...
MinGW does not play well either with weak symbols and crashes at runtime without a trace
fixes: 7e833713d8
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22474 >
2023-04-20 16:51:58 +00:00
Eric Engestrom
5863bafbdc
vk/util: fix buggy usage of unreachable()
...
Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22529 >
2023-04-18 13:59:55 +00:00
Alyssa Rosenzweig
657e82a72f
vulkan: Add common features2_to_features
...
Needed to correctly implement GetPhysicalDeviceFormatProperties2.
Cc stable so the turnip patch can get backported cleanly.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22217 >
2023-04-07 18:16:27 -04:00
Danylo Piliaiev
7e833713d8
vk/entry_points: Add option to generate template entrypoints
...
As a C++ alternative to genX macros.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21931 >
2023-03-24 15:49:26 +00:00
Danylo Piliaiev
1600b310bc
vk/util: Generate defines to help casting structs with vk_find_struct
...
C++ doesn't like implicit casts from void *.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21931 >
2023-03-24 15:49:25 +00:00
Danylo Piliaiev
de5c3900ca
vk/util: remove (void *) casts from vk_foreach_multi_draw macros
...
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21931 >
2023-03-24 15:49:25 +00:00
Danylo Piliaiev
815960d88f
vk/vk_extension_gen: Make table struct initializable in C++ on older gcc
...
Before GCC 11.2 initializing anonymous struct with extensions gave:
error: too many initializers for 'vk_device_extension_table'
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21931 >
2023-03-24 15:49:25 +00:00
Constantine Shablya
46c9e84ead
vulkan: fix building with python3.8
...
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8640
Reviewed-by: Ricardo Garcia <rgarcia@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21958 >
2023-03-21 14:25:40 +00:00
Constantine Shablya
723825f5c7
vulkan: use vk_features for vk_device::enabled_features
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21754 >
2023-03-16 08:23:28 +00:00
Constantine Shablya
c7300a6a3b
vulkan: add hepler for vkGetPhysicalDeviceFeatures2
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21754 >
2023-03-16 08:23:28 +00:00
Constantine Shablya
cd35ab9570
vulkan: tidy up vk_physical_device_features
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21754 >
2023-03-16 08:23:28 +00:00
Constantine Shablya
b0b3b9e8b1
vulkan: relocate rmv to its correct home
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21754 >
2023-03-16 08:23:28 +00:00
Illia Abernikhin
dea36fce6a
util: Extend vk_enum_to_str with bitmasks
...
vk_enum_to_str only generates literals for enums with type: @type="enum",
but many enums have type: @type="bitmask" and were not taken into account here.
Main changes:
Empty enums are now always skipped
For bitmasks skipped *MAX_ENUM value
Signed-off-by: Illia Abernikhin <illia.abernikhin@globallogic.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8173
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21146 >
2023-02-21 13:59:19 +02:00
Faith Ekstrand
f24f753c8a
vulkan: Properly filter structs in vk_physical_device_features
...
This uses get_all_required to filter structs and also filters struct
members based on API.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
5021344fa6
vulkan: Move the features generator to vulkan/util
...
This makes it easier to start depending on vk_extensions.py
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
68cb42e52b
vulkan: Filter out provisional extensions
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
ef3e75d7f3
Vulkan: Properly filter structs in vk_cmd_queue_gen
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
a9c4423ed3
vulkan: Properly filter by api in enum_to_str
...
This switches us to using get_all_required() for figuring out which
enum types we care about and then carefully filtering every value as
needed. We also add a number field to Extension so we keep all the
extension XML parsing in one place.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
4059c78633
vulkan: Properly filter entrypoints
...
We now use get_all_required() to get all required commands and use that
to filter instead of doing it manually. Also, we can pull entrypoint
extension etc. information from the requirements struct. Finally, we
also have to filter the actual commands themselves as well as arguments
per-API because there may be multiple versions or variants depending on
the API being used.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
6910d1337a
vulkan: Add a get_all_required() helper
...
This searches for the names of everything of a particular type: command,
enum, etc. and returns a Requirements struct with any core version and
extensions that require it.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
edfef5d915
vulkan: Parse the platform in Extensions.from_xml()
...
This makes handling guards on entrypoints a bit easier.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
ab5ab6ef9e
vulkan: Improve extension parsing
...
This adds an Extension.from_xml() helper for doing the parsing so we can
re-use it in other code. We also improve filtering of extensions. The
Vulkan XML schema is changing to make the supported attribute a comma-
separated list. This is to allow for vulkansc to also exist in the XML
schema.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
3b686f3a2f
vulkan: Remove unused fields from Extension and ApiVersion
...
These are a left-over from when these classes were used by ANV to define
extension enables in python. They haven't been used since we added
extension table structs and move extension enables to C.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
a47c903e51
Revert "vk/util: keep track of extension requirements"
...
This reverts commit ca98e4446b . The way
extension requirements are specified is about to change significantly.
Since this is so new, it's easier to just revert for now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
15e332073c
Revert "vk/runtime: turn vk.xml extension requirements into asserts"
...
This reverts commit 6ac830ccb1 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Erik Faye-Lund
7ea85871fe
vulkan: prefer vulkan_core.h over vulkan.h
...
If we include vulkan.h, we risk including the WSI bits as well, which we
don't need here. Only trouble can follow from including these where
they're not needed.
So let's include vulkan_core.h in these places instead.
Fixes: b39958a3a1 ("anv,nir: Move the ANV YCbCr lowering pass to common code")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21185 >
2023-02-15 18:35:14 +00:00
Eric Engestrom
6ac830ccb1
vk/runtime: turn vk.xml extension requirements into asserts
...
More specifically, turn
<extension name="VK_KHR_foo" requires="VK_KHR_bar">
into
assert(!ext->KHR_foo || ext->KHR_bar);
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21261 >
2023-02-14 23:28:29 +00:00
Eric Engestrom
ca98e4446b
vk/util: keep track of extension requirements
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21261 >
2023-02-14 23:28:29 +00:00
Friedrich Vock
9419b4ee45
vulkan/rmv: Remove delta parameter from dump helpers
...
It was unused.
Acked-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20820 >
2023-01-26 01:17:26 +00:00
Friedrich Vock
5eb00a195e
vulkan/rmv: Use the timestamp divisor instead of a hardcoded value
...
Acked-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20820 >
2023-01-26 01:17:26 +00:00
Dave Airlie
589d4ff0cb
vulkan/format: add a 10-bit video format
...
This adds support to the generic vulkan format code for
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
which is used for 10-bit H265.
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
(Updated version acked by Lynne on irc)
v2: disable these for freedreno
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20389 >
2023-01-18 06:36:27 +00:00
Jason Ekstrand
5eaf8218de
vulkan/formats: Add YCbCr format information
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19950 >
2023-01-16 14:10:21 +00:00
Konstantin Seurer
329e017300
vulkan/rmv: Only trace on the n-th frame
...
This makes it stop dumping on every n-th frame. It also uses a simple
increment, since the function is locked.
Fixes: defed48 ("vulkan: Add common RMV tracing infrastructure")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20635 >
2023-01-12 18:24:49 +00:00
Friedrich Vock
845792db73
vulkan: Add RMV file exporter
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331 >
2023-01-11 06:55:04 +00:00
Friedrich Vock
defed48104
vulkan: Add common RMV tracing infrastructure
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331 >
2023-01-11 06:55:04 +00:00
Friedrich Vock
5f30a7538b
vulkan: Add RMV token definitions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331 >
2023-01-11 06:55:04 +00:00
Dave Airlie
7bcb6a0896
vulkan/util: handle LUNARG in the list of special prefixes
...
The latest headers update has a lunarg extension that needs this.
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Acked-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20384 >
2022-12-20 07:28:04 +10:00
Dave Airlie
bfe1942e8a
vulkan/cmd_queue: update generator to handle guarded types.
...
The latest includes/registry have some pNext structs that need
guarding spearately to their initial structs, so we have to track
the define guards better and use them in the generated code
For example:
VkVideoEncodeRateControlInfoKHR extends VkVideoCodingControlInfoKHR
However the first struct is protected by BETA, but the second isn't
the generator was always generating unguarded code for all structs
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Acked-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20384 >
2022-12-20 07:27:25 +10:00
Illia Abernikhin
aa4ac5ff8b
utils: Merge util/debug.* into util/u_debug.* and remove util/debug.*
...
Rename env_var_as_unsigned() -> debug_get_num_option(), because duplicate
Rename env_var_as_bool() -> debug_get_bool_option(), because duplicate
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7177
Signed-off-by: Illia Abernikhin <illia.abernikhin@globallogic.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19336 >
2022-11-02 07:25:39 +00:00
Jason Ekstrand
691ec62452
vulkan: Use altlen when available for array lengths
...
When the array length is a calculation, the C version of the calculation
is provided in altlen while len often contains LaTeX that we can't do
anything with. Use altlen when available. Also, while we're here, wrap
array lengths in parentheses in case they contain math.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18878 >
2022-09-29 05:00:10 +00:00
Chia-I Wu
3c76091801
vulkan: update ALLOWED_ANDROID_VERSION for api level 33
...
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18476 >
2022-09-13 23:34:58 +00:00
James Park
c48c53c21f
vulkan: Augment _WIN32 stub comparison
...
Make current check robust to incremental linking.
Compare JMP targets if the first byte is opcode 0xE9.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18400 >
2022-09-08 15:37:11 +00:00
Jason Ekstrand
cc6ad491ea
vulkan/cmd_queue: Drop vk_cmd_queue::error
...
Instead, we return errors from each of the enqueue functions and record
those errors (if any) in vk_command_buffer::record_result. This also
involves some awkward changes to each of the three drivers that uses
vk_cmd_queue but those are resolved in later commits as we convert those
drivers to the common error tracking.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16918 >
2022-09-01 14:11:55 +00:00
Rhys Perry
dfbb4b384a
util/format,vulkan/format: update p_format for Vulkan vertex buffers
...
We need to move some earlier (so they are <= 255 like the comment says)
and add a few 64-bit ones.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17894 >
2022-08-30 19:02:11 +00:00
Chad Versace
d46a78e74e
vulkan: Make vk_copy_struct_guts() public
...
Venus wants to copy struct guts too.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18000 >
2022-08-30 08:09:55 +00:00
Kostiantyn Lazukin
31675fc766
vulkan/cmd_queue: Do not generate unreachable vk_free_* calls.
...
CID: 1503117
CID: 1503118
CID: 1503119
CID: 1503120
CID: 1503121
CID: 1503122
CID: 1503123
CID: 1503124
CID: 1503125
CID: 1503126
CID: 1503127
CID: 1503128
CID: 1503129
CID: 1503130
CID: 1503131
CID: 1503132
CID: 1503133
CID: 1503134
CID: 1503135
CID: 1503136
CID: 1503137
CID: 1503138
CID: 1503139
CID: 1503140
CID: 1503141
CID: 1503142
CID: 1503143
CID: 1503144
CID: 1503145
CID: 1503146
CID: 1503147
CID: 1503148
CID: 1503149
CID: 1503150
CID: 1503151
CID: 1503152
CID: 1503153
CID: 1503154
CID: 1503155
CID: 1503156
CID: 1503157
CID: 1503158
CID: 1503159
CID: 1503160
CID: 1503161
CID: 1503162
CID: 1503163
CID: 1503164
CID: 1503165
CID: 1503166
CID: 1503167
CID: 1503168
CID: 1503169
CID: 1503170
CID: 1503171
CID: 1503172
CID: 1503173
CID: 1503174
CID: 1503175
CID: 1503176
CID: 1503177
CID: 1503178
CID: 1503179
CID: 1503180
CID: 1503181
CID: 1503182
CID: 1503183
CID: 1503184
CID: 1503185
CID: 1503186
CID: 1503187
CID: 1503188
CID: 1503189
CID: 1503190
Signed-off-by: Kostiantyn Lazukin <kostiantyn.lazukin@globallogic.com >
Signed-off-by: Oleksii Bozhenko <oleksii.bozhenko@globallogic.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15549 >
2022-08-29 11:25:23 +00:00