-
Notifications
You must be signed in to change notification settings - Fork 462
layers: Add YCbCr2Plane VUs #11369
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
layers: Add YCbCr2Plane VUs #11369
Conversation
|
CI Vulkan-ValidationLayers build queued with queue ID 615024. |
|
CI Vulkan-ValidationLayers build # 22030 running. |
2c8421c to
5f825e6
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 615038. |
5f825e6 to
ab9ed36
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 615051. |
|
CI Vulkan-ValidationLayers build # 22032 running. |
| error = true; | ||
| } | ||
|
|
||
| // #ARNO_TODO what if vk_khr_get_physical_device_properties2 is not enabled? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still need to figure this out, @spencer-lunarg do you know?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You shouldn't be calling here, you will need to use special_supported.h like we do for has_maintenance9
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see why this approach is better (having to add new state)? We already track the info I am interested in
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already track the info
then why are we calling DispatchGetPhysicalDeviceFeatures2 every vkGetPhysicalDeviceFormatProperties2?
having to add new state
I mean it is a single boolean to the Instance level tracking and we already have a dedicated class for this type of "check if supported" ... not sure why we suddenly need now some places that use SpecialSupported and some that are calling their own dispatch to check, want a single way to do things above all
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
aaaah we were not talking about the same thing, I was talking about the IsExtEnabled(extensions.vk_khr_get_physical_device_properties2) call, not how we get ycbcr_formats_features.ycbcr2plane444Formats. I get what you mean now, will do as you suggested!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah I don't think using special_supported.h is possible, this struct is stored in some VkDevice state, in this function I have only access to a VkPhysicalDevice...
| VkFormatProperties2 format_props_2 = vku::InitStructHelper(); | ||
| format_props_2.formatProperties = *pFormatProperties; | ||
|
|
||
| skip |= manual_PreCallValidateGetPhysicalDeviceFormatProperties2(physicalDevice, format, &format_props_2, context); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we only call manual_ from the generated code... can you make a common Instance::ValidateGetPhysicalDeviceFormatProperties2() to have them both call
|
CI Vulkan-ValidationLayers build # 22032 failed. |
ab9ed36 to
783e2a8
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 615470. |
|
CI Vulkan-ValidationLayers build # 22037 running. |
783e2a8 to
53df244
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 615484. |
|
CI Vulkan-ValidationLayers build # 22038 running. |
|
CI Vulkan-ValidationLayers build # 22038 failed. |
53df244 to
c3ef19e
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 615586. |
|
CI Vulkan-ValidationLayers build # 22041 running. |
|
CI Vulkan-ValidationLayers build # 22041 aborted. |
|
CI Vulkan-ValidationLayers build queued with queue ID 616029. |
|
CI Vulkan-ValidationLayers build # 22054 running. |
|
CI Vulkan-ValidationLayers build # 22054 failed. |
c3ef19e to
0e66231
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 617615. |
|
CI Vulkan-ValidationLayers build # 22076 running. |
|
CI Vulkan-ValidationLayers build # 22076 aborted. |
0e66231 to
468d9ee
Compare
|
CI Vulkan-ValidationLayers build # 22102 passed. |
| VkPhysicalDeviceFeatures2 features_2 = vku::InitStructHelper(); | ||
| VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT ycbcr_formats_features = vku::InitStructHelper(); | ||
| features_2.pNext = &ycbcr_formats_features; | ||
| DispatchGetPhysicalDeviceFeatures2(physicalDevice, &features_2); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need this, we have special_supported.h for a reason, we don't need to reimplement this query logic for every spot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually, wait, we don't need this... ycbcr2plane444Formats is required to be supported if the vk_ext_ycbcr_2plane_444_formats is supported... something is wrong here.. this is more complex then I think we need
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if exposed_extensions.vk_ext_ycbcr_2plane_444_formats is false that is the same as ycbcr2plane444Formats not being supported
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (IsValueIn(format, {VK_FORMAT_G8_B8R8_2PLANE_444_UNORM, VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, VK_FORMAT_G16_B16R16_2PLANE_444_UNORM})) {
const auto &exposed_extensions = physical_device_extensions.at(physicalDevice);
if (api_version < VK_API_VERSION_1_3 &&
!exposed_extensions.vk_khr_maintenance5 &&
!exposed_extensions.vk_ext_ycbcr_2plane_444_formats) {
const char *vuid = context.error_obj.location.function == Func::vkGetPhysicalDeviceFormatProperties
? "VUID-vkGetPhysicalDeviceFormatProperties-None-12272"
: "VUID-vkGetPhysicalDeviceFormatProperties2-None-12273";
skip |= LogError(vuid, physicalDevice, context.error_obj.location.dot(Field::format), "is %s.", string_VkFormat(format));
}
}should be enough
11a1b5f to
9c47379
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 620181. |
|
CI Vulkan-ValidationLayers build # 22125 running. |
|
CI Vulkan-ValidationLayers build # 22125 failed. |
|
CI Vulkan-ValidationLayers build queued with queue ID 620231. |
|
CI Vulkan-ValidationLayers build # 22127 running. |
|
CI Vulkan-ValidationLayers build # 22127 failed. |
604ddbb to
b67f0ca
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 620431. |
|
CI Vulkan-ValidationLayers build # 22128 running. |
|
CI Vulkan-ValidationLayers build # 22128 failed. |
b67f0ca to
cf4c0ae
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 620587. |
|
CI Vulkan-ValidationLayers build # 22134 running. |
|
CI Vulkan-ValidationLayers build # 22134 failed. |
cf4c0ae to
49f7176
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 621296. |
|
CI Vulkan-ValidationLayers build # 22143 running. |
|
CI Vulkan-ValidationLayers build # 22143 failed. |
49f7176 to
6f1bfb5
Compare
|
CI Vulkan-ValidationLayers build queued with queue ID 622585. |
|
CI Vulkan-ValidationLayers build # 22155 running. |
|
CI Vulkan-ValidationLayers build # 22155 failed. |
|
CI Vulkan-ValidationLayers build queued with queue ID 623223. |
closes #11327