Skip to content

Conversation

@arno-lunarg
Copy link
Contributor

closes #11327

@arno-lunarg arno-lunarg requested a review from a team as a code owner January 5, 2026 17:14
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 615024.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22030 running.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from 2c8421c to 5f825e6 Compare January 5, 2026 17:17
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 615038.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from 5f825e6 to ab9ed36 Compare January 5, 2026 17:18
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 615051.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22032 running.

error = true;
}

// #ARNO_TODO what if vk_khr_get_physical_device_properties2 is not enabled?
Copy link
Contributor Author

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?

Copy link
Contributor

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

Copy link
Contributor Author

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

Copy link
Contributor

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

Copy link
Contributor Author

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!

Copy link
Contributor Author

@arno-lunarg arno-lunarg Jan 7, 2026

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);
Copy link
Contributor

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-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22032 failed.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from ab9ed36 to 783e2a8 Compare January 6, 2026 09:58
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 615470.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22037 running.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from 783e2a8 to 53df244 Compare January 6, 2026 10:01
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 615484.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22038 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22038 failed.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from 53df244 to c3ef19e Compare January 6, 2026 11:08
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 615586.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22041 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22041 aborted.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 616029.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22054 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22054 failed.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from c3ef19e to 0e66231 Compare January 8, 2026 11:25
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 617615.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22076 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22076 aborted.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from 0e66231 to 468d9ee Compare January 8, 2026 16:51
@ci-tester-lunarg
Copy link
Collaborator

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);
Copy link
Contributor

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

Copy link
Contributor

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

Copy link
Contributor

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

Copy link
Contributor

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

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from 11a1b5f to 9c47379 Compare January 12, 2026 09:10
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 620181.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22125 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22125 failed.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 620231.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22127 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22127 failed.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from 604ddbb to b67f0ca Compare January 12, 2026 15:44
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 620431.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22128 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22128 failed.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from b67f0ca to cf4c0ae Compare January 12, 2026 17:11
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 620587.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22134 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22134 failed.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from cf4c0ae to 49f7176 Compare January 13, 2026 10:46
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 621296.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22143 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22143 failed.

@arno-lunarg arno-lunarg force-pushed the arno-layers-i-am-the-new-ycbcr-expert-now branch from 49f7176 to 6f1bfb5 Compare January 14, 2026 16:15
@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 622585.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22155 running.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build # 22155 failed.

@ci-tester-lunarg
Copy link
Collaborator

CI Vulkan-ValidationLayers build queued with queue ID 623223.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing ycbcr2plane444Formats VUs

3 participants