Example #1
0
QString ToQStr(const ShaderStageType stage, const GraphicsAPI apitype)
{
  if(IsD3D(apitype))
  {
    switch(stage)
    {
      case eShaderStage_Vertex: return "Vertex";
      case eShaderStage_Hull: return "Hull";
      case eShaderStage_Domain: return "Domain";
      case eShaderStage_Geometry: return "Geometry";
      case eShaderStage_Pixel: return "Pixel";
      case eShaderStage_Compute: return "Compute";
      default: break;
    }
  }
  else if(apitype == eGraphicsAPI_OpenGL || apitype == eGraphicsAPI_Vulkan)
  {
    switch(stage)
    {
      case eShaderStage_Vertex: return "Vertex";
      case eShaderStage_Tess_Control: return "Tess. Control";
      case eShaderStage_Tess_Eval: return "Tess. Eval";
      case eShaderStage_Geometry: return "Geometry";
      case eShaderStage_Fragment: return "Fragment";
      case eShaderStage_Compute: return "Compute";
      default: break;
    }
  }

  return "Unknown";
}
HRESULT STDMETHODCALLTYPE CD3DX12AffinityObject::SetPrivateDataInterface(
    REFGUID guid,
    const IUnknown* pData,
    UINT AffinityIndex)
{
    if (IsD3D())
    {
        return ((ID3D12Object*)mObjects[AffinityIndex])->SetPrivateDataInterface(guid, pData);
    }
    else
    {
        return ((IDXGIObject*)mObjects[AffinityIndex])->SetPrivateDataInterface(guid, pData);
    }
}
HRESULT STDMETHODCALLTYPE CD3DX12AffinityObject::SetPrivateData(
    REFGUID guid,
    UINT DataSize,
    const void* pData,
    UINT AffinityIndex)
{
    if (IsD3D())
    {
        return ((ID3D12Object*)mObjects[AffinityIndex])->SetPrivateData(guid, DataSize, pData);
    }
    else
    {
        return ((IDXGIObject*)mObjects[AffinityIndex])->SetPrivateData(guid, DataSize, pData);
    }
}
HRESULT STDMETHODCALLTYPE CD3DX12AffinityObject::SetName(
    LPCWSTR Name,
    UINT AffinityIndex)
{
    if (IsD3D())
    {
        for (UINT i = 0; i < D3DX12_MAX_ACTIVE_NODES; ++i)
        {
            if (mObjects[i])
            {
                ((ID3D12Object*)mObjects[i])->SetName(Name);
            }
            else
            {
                break;
            }
        }
    }
#ifdef DEBUG_OBJECT_NAME
    mObjectDebugName = Name;
#endif
    return S_OK;
}
Example #5
0
QString ToQStr(const ResourceUsage usage, const GraphicsAPI apitype)
{
  if(IsD3D(apitype))
  {
    switch(usage)
    {
      case eUsage_VertexBuffer: return "Vertex Buffer";
      case eUsage_IndexBuffer: return "Index Buffer";

      case eUsage_VS_Constants: return "VS - Constant Buffer";
      case eUsage_GS_Constants: return "GS - Constant Buffer";
      case eUsage_HS_Constants: return "HS - Constant Buffer";
      case eUsage_DS_Constants: return "DS - Constant Buffer";
      case eUsage_CS_Constants: return "CS - Constant Buffer";
      case eUsage_PS_Constants: return "PS - Constant Buffer";
      case eUsage_All_Constants: return "All - Constant Buffer";

      case eUsage_SO: return "Stream Out";

      case eUsage_VS_Resource: return "VS - Resource";
      case eUsage_GS_Resource: return "GS - Resource";
      case eUsage_HS_Resource: return "HS - Resource";
      case eUsage_DS_Resource: return "DS - Resource";
      case eUsage_CS_Resource: return "CS - Resource";
      case eUsage_PS_Resource: return "PS - Resource";
      case eUsage_All_Resource: return "All - Resource";

      case eUsage_VS_RWResource: return "VS - UAV";
      case eUsage_HS_RWResource: return "HS - UAV";
      case eUsage_DS_RWResource: return "DS - UAV";
      case eUsage_GS_RWResource: return "GS - UAV";
      case eUsage_PS_RWResource: return "PS - UAV";
      case eUsage_CS_RWResource: return "CS - UAV";
      case eUsage_All_RWResource: return "All - UAV";

      case eUsage_InputTarget: return "Colour Input";
      case eUsage_ColourTarget: return "Rendertarget";
      case eUsage_DepthStencilTarget: return "Depthstencil";

      case eUsage_Indirect: return "Indirect argument";

      case eUsage_Clear: return "Clear";

      case eUsage_GenMips: return "Generate Mips";
      case eUsage_Resolve: return "Resolve";
      case eUsage_ResolveSrc: return "Resolve - Source";
      case eUsage_ResolveDst: return "Resolve - Dest";
      case eUsage_Copy: return "Copy";
      case eUsage_CopySrc: return "Copy - Source";
      case eUsage_CopyDst: return "Copy - Dest";

      case eUsage_Barrier: return "Barrier";
      default: break;
    }
  }
  else if(apitype == eGraphicsAPI_OpenGL || apitype == eGraphicsAPI_Vulkan)
  {
    const bool vk = (apitype == eGraphicsAPI_Vulkan);

    switch(usage)
    {
      case eUsage_VertexBuffer: return "Vertex Buffer";
      case eUsage_IndexBuffer: return "Index Buffer";

      case eUsage_VS_Constants: return "VS - Uniform Buffer";
      case eUsage_GS_Constants: return "GS - Uniform Buffer";
      case eUsage_HS_Constants: return "HS - Uniform Buffer";
      case eUsage_DS_Constants: return "DS - Uniform Buffer";
      case eUsage_CS_Constants: return "CS - Uniform Buffer";
      case eUsage_PS_Constants: return "PS - Uniform Buffer";
      case eUsage_All_Constants: return "All - Uniform Buffer";

      case eUsage_SO: return "Transform Feedback";

      case eUsage_VS_Resource: return "VS - Texture";
      case eUsage_GS_Resource: return "GS - Texture";
      case eUsage_HS_Resource: return "HS - Texture";
      case eUsage_DS_Resource: return "DS - Texture";
      case eUsage_CS_Resource: return "CS - Texture";
      case eUsage_PS_Resource: return "PS - Texture";
      case eUsage_All_Resource: return "All - Texture";

      case eUsage_VS_RWResource: return "VS - Image/SSBO";
      case eUsage_HS_RWResource: return "HS - Image/SSBO";
      case eUsage_DS_RWResource: return "DS - Image/SSBO";
      case eUsage_GS_RWResource: return "GS - Image/SSBO";
      case eUsage_PS_RWResource: return "PS - Image/SSBO";
      case eUsage_CS_RWResource: return "CS - Image/SSBO";
      case eUsage_All_RWResource: return "All - Image/SSBO";

      case eUsage_InputTarget: return "FBO Input";
      case eUsage_ColourTarget: return "FBO Colour";
      case eUsage_DepthStencilTarget: return "FBO Depthstencil";

      case eUsage_Indirect: return "Indirect argument";

      case eUsage_Clear: return "Clear";

      case eUsage_GenMips: return "Generate Mips";
      case eUsage_Resolve: return vk ? "Resolve" : "Framebuffer blit";
      case eUsage_ResolveSrc: return vk ? "Resolve - Source" : "Framebuffer blit - Source";
      case eUsage_ResolveDst: return vk ? "Resolve - Dest" : "Framebuffer blit - Dest";
      case eUsage_Copy: return "Copy";
      case eUsage_CopySrc: return "Copy - Source";
      case eUsage_CopyDst: return "Copy - Dest";

      case eUsage_Barrier: return "Barrier";
      default: break;
    }
  }

  return "Unknown";
}
//Get the system information and print everything on screen (and in the log file)
void GameDebugger::GetSystemSpecs(ALLEGRO_DISPLAY* mydisplay)
{
    GetSystemInfo(&SystemInfo);
    struct tm* mytime = GetDateAndTime();

        fprintf(OutputFile, "-- START OF LOG FILE --\nTIMESTAMP: %02i/%02i/%02i - %02i:%02i:%02i\n\n",1+mytime->tm_mday, 1+mytime->tm_mon,
            1900+mytime->tm_year, mytime->tm_hour, mytime->tm_min, mytime->tm_sec);

    GetPhysicallyInstalledSystemMemory(&pMemory);
    myMemory.dwLength = sizeof(myMemory);
    GlobalMemoryStatus(&myMemory);

    fprintf(OutputFile, "-- SYSTEM SPECS --\n\n");
    fprintf(OutputFile, "CPU: %s\n", cpuInstInfo.cpusignature);
    fprintf(OutputFile, "Cores: %i\n", SystemInfo.dwNumberOfProcessors);

#ifdef _DEBUG
	printf("-- SYSTEM SPECS --\n\n");
	printf("CPU: %s\n", cpuInstInfo.cpusignature);
	printf("Cores: %i\n", SystemInfo.dwNumberOfProcessors);
#endif

    if(cpuInstInfo.PFLAGS.PYSICAL_ADDRESS_E)
    {
        fprintf(OutputFile, "Physical Address Extension (PAE) Available (x86_64)\n");
#ifdef _DEBUG
        printf("Physical Address Extension (PAE) Available (x86_64)\n");
#endif
    }

    fprintf(OutputFile, "Other processor extensions: ");
    printf("Other processor extensions: ");

    if(cpuInstInfo.PFLAGS.LONGMODE)
    {
        fprintf(OutputFile, "lm ");
#ifdef _DEBUG
        printf("lm ");
#endif
    }

    if(cpuInstInfo.PFLAGS.MMX_INSTRUCTIONS)
    {
        fprintf(OutputFile, "mmx ");
#ifdef _DEBUG
        printf("mmx ");
#endif
    }

    if(cpuInstInfo.PFLAGS.EXT_MMX)
    {
        fprintf(OutputFile, "mmxext ");
#ifdef _DEBUG
        printf("mmxext ");
#endif
    }

    if(cpuInstInfo.PFLAGS.B3DNOW)
    {
        fprintf(OutputFile, "3dnow ");
#ifdef _DEBUG
        printf("3dnow ");
#endif
    }

    if(cpuInstInfo.PFLAGS.EXT_3DNOW)
    {
        fprintf(OutputFile, "3dnowext ");
#ifdef _DEBUG
        printf("3dnowext ");
#endif
    }

    if(cpuInstInfo.PFLAGS.MULTIPROCESSOR_CAPABLE)
    {
        fprintf(OutputFile, "mp ");
#ifdef _DEBUG
        printf("mp ");
#endif
    }

    fprintf(OutputFile, "\n\n -- RAM INFORMATION -- \n\n");
    fprintf(OutputFile, "Physical RAM: %I64u Mb\n",pMemory/1024);
    fprintf(OutputFile, "Available RAM: %i Mb\n",myMemory.dwAvailPhys / 1024 / 1024);
    fprintf(OutputFile, "Total PageFile: %i Mb\n",myMemory.dwTotalPageFile / 1024 / 1024);
    fprintf(OutputFile, "Available PageFile: %i Mb\n",myMemory.dwAvailPageFile / 1024 / 1024);
    fprintf(OutputFile, "Total Virtual Memory: %i Mb\n",myMemory.dwTotalVirtual / 1024 / 1024);
    fprintf(OutputFile, "Available Virtual Memory: %i Mb\n",myMemory.dwAvailVirtual / 1024 / 1024);

#ifdef _DEBUG
	printf("\n\n -- RAM INFORMATION -- \n\n");
	printf("Physical RAM: %I64u Mb\n",pMemory/1024);
    printf("Available RAM: %i Mb\n",myMemory.dwAvailPhys / 1024 / 1024);
    printf("Total PageFile: %i Mb\n",myMemory.dwTotalPageFile / 1024 / 1024);
	printf("Available PageFile: %i Mb\n",myMemory.dwAvailPageFile / 1024 / 1024);
    printf("Total Virtual Memory: %i Mb\n",myMemory.dwTotalVirtual / 1024 / 1024);
    printf("Available Virtual Memory: %i Mb\n",myMemory.dwAvailVirtual / 1024 / 1024);
#endif

	if(IsD3D(mydisplay))
	{
#ifdef _DEBUG
		printf("Using Direct 3D\n");
#endif
		fprintf(OutputFile, "Using Direct 3D\n");
		GetD3DInfo(mydisplay);
		
	}else{
#ifdef _DEBUG
		printf("Using OpenGL 3D\n");
#endif
		fprintf(OutputFile, "Using OpenGL\n");
		GetGLInfo(mydisplay);
	}

    return;
}