aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2023-10-11 23:30:39 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-10-11 23:30:39 +0000
commitbabd5cc84ae244e0d6fc81f44155f4ee4b6662eb (patch)
treea1225b733b3d4daa8e4cf7f591351006b4333766
parentb92b762431a866bf2ea35999cb91073c6ffb3970 (diff)
parent9735e6d368806b0fd34596005a61a3d509fca3d2 (diff)
downloadgoldfish-opengl-babd5cc84ae244e0d6fc81f44155f4ee4b6662eb.tar.gz
Merge "Fix for dEQP-VK.*.extended_dynamic_state.*.enable_raster" into udc-dev am: 9735e6d368
Original change: https://googleplex-android-review.googlesource.com/c/device/generic/goldfish-opengl/+/25018260 Change-Id: Ia44bea62a911ccff8d103c384eacbe2d342d9666 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--system/vulkan_enc/goldfish_vk_counting_guest.cpp14
-rw-r--r--system/vulkan_enc/goldfish_vk_marshaling_guest.cpp13
-rw-r--r--system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp13
3 files changed, 30 insertions, 10 deletions
diff --git a/system/vulkan_enc/goldfish_vk_counting_guest.cpp b/system/vulkan_enc/goldfish_vk_counting_guest.cpp
index ed2e2300..e9529d84 100644
--- a/system/vulkan_enc/goldfish_vk_counting_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_counting_guest.cpp
@@ -1558,10 +1558,16 @@ void count_VkGraphicsPipelineCreateInfo(uint32_t featureBits, VkStructureType ro
(void)count;
uint32_t hasRasterization = 1;
if (featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
- hasRasterization = (((0 == toCount->pRasterizationState))
- ? (0)
- : (!((*(toCount->pRasterizationState)).rasterizerDiscardEnable)));
- *count += 4;
+ hasRasterization =
+ ((((0 == toCount->pRasterizationState))
+ ? (0)
+ : (!((*(toCount->pRasterizationState)).rasterizerDiscardEnable))) ||
+ (((0 == toCount->pDynamicState))
+ ? (0)
+ : (arrayany((*(toCount->pDynamicState)).pDynamicStates, 0,
+ (*(toCount->pDynamicState)).dynamicStateCount, [](VkDynamicState s) {
+ return (s == VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE);
+ }))));
}
uint32_t hasTessellation = 1;
if (featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
index ac438807..730b8eee 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -2808,9 +2808,16 @@ void marshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest* vkStream, VkStructu
uint32_t hasRasterization = 1;
if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
hasRasterization =
- (((0 == forMarshaling->pRasterizationState))
- ? (0)
- : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable)));
+ ((((0 == forMarshaling->pRasterizationState))
+ ? (0)
+ : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable))) ||
+ (((0 == forMarshaling->pDynamicState))
+ ? (0)
+ : (arrayany((*(forMarshaling->pDynamicState)).pDynamicStates, 0,
+ (*(forMarshaling->pDynamicState)).dynamicStateCount,
+ [](VkDynamicState s) {
+ return (s == VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE);
+ }))));
uint32_t cgen_var_0 = (uint32_t)hasRasterization;
vkStream->putBe32(cgen_var_0);
}
diff --git a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
index d06ebd9f..1676c86a 100644
--- a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
@@ -2117,9 +2117,16 @@ void reservedmarshal_VkGraphicsPipelineCreateInfo(VulkanStreamGuest* vkStream,
uint32_t hasRasterization = 1;
if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) {
hasRasterization =
- (((0 == forMarshaling->pRasterizationState))
- ? (0)
- : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable)));
+ ((((0 == forMarshaling->pRasterizationState))
+ ? (0)
+ : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable))) ||
+ (((0 == forMarshaling->pDynamicState))
+ ? (0)
+ : (arrayany((*(forMarshaling->pDynamicState)).pDynamicStates, 0,
+ (*(forMarshaling->pDynamicState)).dynamicStateCount,
+ [](VkDynamicState s) {
+ return (s == VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE);
+ }))));
uint32_t cgen_var_0 = (uint32_t)hasRasterization;
memcpy((*ptr), &cgen_var_0, 4);
android::base::Stream::toBe32((uint8_t*)(*ptr));