Convert Figma logo to code with AI

baldurk logorenderdoc

RenderDoc is a stand-alone graphics debugging tool.

8,826
1,323
8,826
59

Top Related Projects

This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.

Unity Graphics - Including Scriptable Render Pipeline

Quick Overview

RenderDoc is an open-source graphics debugging and profiling tool that supports a wide range of graphics APIs, including DirectX, Vulkan, OpenGL, and OpenGLES. It provides developers with a comprehensive set of tools to analyze and debug their graphics applications, helping them optimize performance and identify rendering issues.

Pros

  • Cross-Platform Support: RenderDoc supports multiple graphics APIs and platforms, including Windows, Linux, and Android, making it a versatile tool for developers working on a variety of projects.
  • Detailed Capture and Replay: RenderDoc can capture and replay graphics frames, allowing developers to analyze the rendering process in detail and identify performance bottlenecks or rendering issues.
  • Extensive Debugging Tools: RenderDoc offers a wide range of debugging tools, including a shader debugger, texture viewer, and pipeline state viewer, which help developers understand the inner workings of their graphics applications.
  • Active Development and Community: RenderDoc has an active development team and a growing community of contributors, ensuring regular updates and improvements to the tool.

Cons

  • Learning Curve: RenderDoc can have a steep learning curve, especially for developers who are new to graphics programming or debugging tools.
  • Limited Support for Newer APIs: While RenderDoc supports a wide range of graphics APIs, it may not always have the latest features or support for the newest versions of these APIs.
  • Performance Impact: Capturing and replaying graphics frames can have a significant performance impact on the application being debugged, which may be a concern for some developers.
  • Limited Integration with IDEs: RenderDoc does not have tight integration with popular IDEs, which may make it less convenient for some developers to use in their existing workflow.

Code Examples

N/A (RenderDoc is not a code library)

Getting Started

N/A (RenderDoc is not a code library)

Competitor Comparisons

This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.

Pros of DirectXShaderCompiler

  • Comprehensive support for DirectX shader languages, including HLSL, DXIL, and SPIR-V.
  • Actively maintained and updated by Microsoft, ensuring compatibility with the latest DirectX versions.
  • Provides a robust and reliable shader compilation pipeline for game and graphics developers.

Cons of DirectXShaderCompiler

  • Primarily focused on DirectX-specific shader compilation, limiting its usefulness for non-DirectX graphics APIs.
  • May have a steeper learning curve compared to more general-purpose shader compilers.
  • Limited community support and contributions outside of Microsoft's own development efforts.

Code Comparison

DirectXShaderCompiler

HRESULT CompileShader(
    _In_reads_(pShaderBytecode->Length) LPCVOID pShaderBytecode,
    _In_ SIZE_T BytecodeLength,
    _In_opt_ LPCSTR pEntrypoint,
    _In_opt_ LPCSTR pTargetProfile,
    _In_ UINT Flags1,
    _In_ UINT Flags2,
    _Out_ ID3DBlob** ppCode,
    _Out_opt_ ID3DBlob** ppErrorMsgs
);

RenderDoc

bool RenderDoc::Initialise(const char *logFile, const char *dllSearchPath)
{
    m_LogFile = logFile;
    m_DllSearchPath = dllSearchPath;

    // Initialise the RenderDoc API
    return m_API->Initialise();
}

Unity Graphics - Including Scriptable Render Pipeline

Pros of Unity-Technologies/Graphics

  • Comprehensive collection of graphics-related projects and tools, including rendering, shaders, and post-processing effects.
  • Active development and contributions from the Unity community, ensuring regular updates and improvements.
  • Extensive documentation and examples, making it easier for developers to integrate the projects into their own workflows.

Cons of Unity-Technologies/Graphics

  • Primarily focused on Unity-specific technologies, which may limit its applicability to non-Unity projects.
  • The large scope of the repository can make it challenging to navigate and find specific tools or features.
  • Some projects within the repository may have a steeper learning curve compared to more specialized tools like RenderDoc.

Code Comparison

RenderDoc (baldurk/renderdoc):

void RenderDoc::Shutdown()
{
    if(m_RenderDocDLL)
    {
        pRENDERDOC_Shutdown shutdown = (pRENDERDOC_Shutdown)GetProcAddress(m_RenderDocDLL, "RENDERDOC_Shutdown");
        if(shutdown)
            shutdown();

        FreeLibrary(m_RenderDocDLL);
        m_RenderDocDLL = NULL;
    }
}

Unity-Technologies/Graphics:

public static void Blit(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier dest, Material material, int passIndex = 0)
{
    cmd.SetRenderTarget(dest);
    cmd.DrawProcedural(Matrix4x4.identity, material, passIndex, MeshTopology.Triangles, 3, 1);
}

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

MIT licensed CI Contributor Covenant

RenderDoc is a frame-capture based graphics debugger, currently available for Vulkan, D3D11, D3D12, OpenGL, and OpenGL ES development on Windows, Linux, Android, and Nintendo Switch™. It is completely open-source under the MIT license.

RenderDoc is intended for debugging your own programs only. Any discussion of capturing programs that you did not create will not be allowed in any official public RenderDoc setting, including the issue tracker, discord, or via email. For example this includes capturing commercial games that you did not create, or capturing Google Maps or Google Earth. Note: Capturing projects you created that use a third party engine like Unreal or Unity, or open source and free projects is completely fine and supported.

If you have any questions, suggestions or problems or you can create an issue here on github, email me directly or come into IRC or Discord to discuss it.

To install on windows run the appropriate installer for your OS (64-bit | 32-bit) or download the portable zip from the builds page. The 64-bit windows build fully supports capturing from 32-bit programs. On linux only 64-bit x86 is supported - there is a precompiled binary tarball available, or your distribution may package it. If not you can build from source.

Screenshots

Texture view Pixel history & shader debug
Mesh viewer Pipeline viewer & constants

API Support

WindowsLinuxAndroid
Vulkan:heavy_check_mark::heavy_check_mark::heavy_check_mark:
OpenGL ES 2.0 - 3.2:heavy_check_mark::heavy_check_mark::heavy_check_mark:
OpenGL 3.2 - 4.6 Core:heavy_check_mark::heavy_check_mark:N/A
D3D11 & D3D12:heavy_check_mark:N/AN/A
OpenGL 1.0 - 2.0 Compat:heavy_multiplication_x::heavy_multiplication_x:N/A
D3D9 & 10:heavy_multiplication_x:N/AN/A
MetalN/AN/AN/A
  • Nintendo Switch™ support is distributed separately for authorized developers as part of the NintendoSDK. For more information, consult the Nintendo Developer Portal.

Downloads

There are binary releases available, built from the release targets. If you just want to use the program and you ended up here, this is what you want :).

It's recommended that if you're new you start with the stable builds. Nightly builds are available every day from the v1.x branch here if you need it, but correspondingly may be less stable.

Documentation

The text documentation is available online for the latest stable version, as well as in renderdoc.chm in any build. It's built from restructured text with sphinx.

As mentioned above there are some youtube videos showing the use of some basic features and an introduction/overview.

There is also a great presentation by @Icetigris which goes into some details of how RenderDoc can be used in real world situations: slides are up here.

License

RenderDoc is released under the MIT license, see LICENSE.md for full text as well as 3rd party library acknowledgements.

Compiling

Building RenderDoc is fairly straight forward on most platforms. See Compiling.md for more details.

Contributing & Development

I've added some notes on how to contribute, as well as where to get started looking through the code in Developing-Change.md. All contribution information is available under CONTRIBUTING.md.