message: Added render target format validation when creating a PSO
diff: @@ -162,8 +162,18 @@ public:
  if (GraphicsPipeline.pGS) m_ppShaders[m_NumShaders++] = GraphicsPipeline.pGS;
  if (GraphicsPipeline.pHS) m_ppShaders[m_NumShaders++] = GraphicsPipeline.pHS;
  if (GraphicsPipeline.pDS) m_ppShaders[m_NumShaders++] = GraphicsPipeline.pDS;
  +
  + DEV_CHECK_ERR(m_NumShaders > 0, "There must be at least one shader in the Pipeline State");
  +
  + for (Uint32 rt = GraphicsPipeline.NumRenderTargets; rt < _countof(GraphicsPipeline.RTVFormats); ++rt)
  + {
  + auto RTVFmt = GraphicsPipeline.RTVFormats[rt];
  + if (RTVFmt != TEX_FORMAT_UNKNOWN)
  + {
  + LOG_ERROR_MESSAGE("Render target format (", GetTextureFormatAttribs(RTVFmt).Name, ") of unused slot ", rt,
  + " must be set to TEX_FORMAT_UNKNOWN");
  + }
  }
  - VERIFY(m_NumShaders > 0, "There must be at least one shader in the Pipeline State");
  const auto& InputLayout = PSODesc.GraphicsPipeline.InputLayout;
  LayoutElement* pLayoutElements = nullptr;
  @@ -256,6 +266,7 @@ public:
  m_pStrides[i] = Stride != LayoutElement::AutoStride ? Stride : 0;
  }
  }
  + }
  Uint64 DeviceQueuesMask = pDevice->GetCommandQueueMask();
  DEV_CHECK_ERR( (this->m_Desc.CommandQueueMask & DeviceQueuesMask) != 0, "No bits in the command queue mask (0x", std::hex, this->m_Desc.CommandQueueMask, ") correspond to one of ", pDevice->GetCommandQueueCount(), " available device command queues");
  