{ "perfc", TU_DEBUG_PERFC },
{ "flushall", TU_DEBUG_FLUSHALL },
{ "syncdraw", TU_DEBUG_SYNCDRAW },
+ { "dontcare_as_load", TU_DEBUG_DONT_CARE_AS_LOAD },
{ NULL, 0 }
};
DRI_CONF_SECTION_DEBUG
DRI_CONF_VK_WSI_FORCE_BGRA8_UNORM_FIRST(false)
+ DRI_CONF_VK_DONT_CARE_AS_LOAD(false)
DRI_CONF_SECTION_END
};
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options, 0, "turnip", NULL, NULL,
instance->vk.app_info.app_name, instance->vk.app_info.app_version,
instance->vk.app_info.engine_name, instance->vk.app_info.engine_version);
+
+ if (driQueryOptionb(&instance->dri_options, "vk_dont_care_as_load"))
+ instance->debug_flags |= TU_DEBUG_DONT_CARE_AS_LOAD;
}
VKAPI_ATTR VkResult VKAPI_CALL
att->cpp = vk_format_get_blocksize(att->format) * att->samples;
att->gmem_offset = -1;
+ VkAttachmentLoadOp loadOp = pCreateInfo->pAttachments[i].loadOp;
+ VkAttachmentLoadOp stencilLoadOp = pCreateInfo->pAttachments[i].stencilLoadOp;
+
+ if (device->instance->debug_flags & TU_DEBUG_DONT_CARE_AS_LOAD) {
+ if (loadOp == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
+ loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
+ if (stencilLoadOp == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
+ stencilLoadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
+ }
+
attachment_set_ops(att,
- pCreateInfo->pAttachments[i].loadOp,
- pCreateInfo->pAttachments[i].stencilLoadOp,
+ loadOp,
+ stencilLoadOp,
pCreateInfo->pAttachments[i].storeOp,
pCreateInfo->pAttachments[i].stencilStoreOp);
}
TU_DEBUG_PERFC = 1 << 9,
TU_DEBUG_FLUSHALL = 1 << 10,
TU_DEBUG_SYNCDRAW = 1 << 11,
+ TU_DEBUG_DONT_CARE_AS_LOAD = 1 << 12,
};
struct tu_instance