1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-17 17:52:11 +01:00

[dxvk] Log pipeline state when pipeline compilation fails

This commit is contained in:
Philip Rebohle 2018-04-02 19:05:41 +02:00
parent 267daeccad
commit 097eb89cfb
3 changed files with 13 additions and 9 deletions

View File

@ -98,6 +98,7 @@ namespace dxvk {
if (m_vkd->vkCreateComputePipelines(m_vkd->device(),
m_cache->handle(), 1, &info, nullptr, &pipeline) != VK_SUCCESS) {
Logger::err("DxvkComputePipeline: Failed to compile pipeline");
Logger::err(str::format(" cs : ", m_cs ->debugName()));
return VK_NULL_HANDLE;
}

View File

@ -95,8 +95,10 @@ namespace dxvk {
VkPipeline DxvkGraphicsPipeline::compilePipeline(
const DxvkGraphicsPipelineStateInfo& state,
VkPipeline baseHandle) const {
if (Logger::logLevel() <= LogLevel::Debug)
this->logPipelineState(state);
if (Logger::logLevel() <= LogLevel::Debug) {
Logger::debug("Compiling graphics pipeline...");
this->logPipelineState(LogLevel::Debug, state);
}
std::array<VkDynamicState, 4> dynamicStates = {
VK_DYNAMIC_STATE_VIEWPORT,
@ -255,6 +257,7 @@ namespace dxvk {
if (m_vkd->vkCreateGraphicsPipelines(m_vkd->device(),
m_cache->handle(), 1, &info, nullptr, &pipeline) != VK_SUCCESS) {
Logger::err("DxvkGraphicsPipeline: Failed to compile pipeline");
this->logPipelineState(LogLevel::Error, state);
return VK_NULL_HANDLE;
}
@ -329,14 +332,13 @@ namespace dxvk {
void DxvkGraphicsPipeline::logPipelineState(
LogLevel level,
const DxvkGraphicsPipelineStateInfo& state) const {
Logger::debug("Compiling graphics pipeline...");
if (m_vs != nullptr) Logger::debug(str::format(" vs : ", m_vs ->debugName()));
if (m_tcs != nullptr) Logger::debug(str::format(" tcs : ", m_tcs->debugName()));
if (m_tes != nullptr) Logger::debug(str::format(" tes : ", m_tes->debugName()));
if (m_gs != nullptr) Logger::debug(str::format(" gs : ", m_gs ->debugName()));
if (m_fs != nullptr) Logger::debug(str::format(" fs : ", m_fs ->debugName()));
if (m_vs != nullptr) Logger::log(level, str::format(" vs : ", m_vs ->debugName()));
if (m_tcs != nullptr) Logger::log(level, str::format(" tcs : ", m_tcs->debugName()));
if (m_tes != nullptr) Logger::log(level, str::format(" tes : ", m_tes->debugName()));
if (m_gs != nullptr) Logger::log(level, str::format(" gs : ", m_gs ->debugName()));
if (m_fs != nullptr) Logger::log(level, str::format(" fs : ", m_fs ->debugName()));
// TODO log more pipeline state
}

View File

@ -161,6 +161,7 @@ namespace dxvk {
const DxvkGraphicsPipelineStateInfo& state) const;
void logPipelineState(
LogLevel level,
const DxvkGraphicsPipelineStateInfo& state) const;
};