namespace Ryujinx.Graphics.GAL.Multithreading
{
    enum CommandType : byte
    {
        Action,
        CreateBuffer,
        CreateBufferAccess,
        CreateHostBuffer,
        CreateProgram,
        CreateSampler,
        CreateSync,
        CreateTexture,
        GetCapabilities,
        Unused,
        PreFrame,
        ReportCounter,
        ResetCounter,
        UpdateCounters,

        BufferDispose,
        BufferGetData,
        BufferSetData,

        CounterEventDispose,
        CounterEventFlush,

        ProgramDispose,
        ProgramGetBinary,
        ProgramCheckLink,

        SamplerDispose,

        TextureCopyTo,
        TextureCopyToBuffer,
        TextureCopyToScaled,
        TextureCopyToSlice,
        TextureCreateView,
        TextureGetData,
        TextureGetDataSlice,
        TextureRelease,
        TextureSetData,
        TextureSetDataSlice,
        TextureSetDataSliceRegion,
        TextureSetStorage,

        WindowPresent,

        Barrier,
        BeginTransformFeedback,
        ClearBuffer,
        ClearRenderTargetColor,
        ClearRenderTargetDepthStencil,
        CommandBufferBarrier,
        CopyBuffer,
        DispatchCompute,
        Draw,
        DrawIndexed,
        DrawIndexedIndirect,
        DrawIndexedIndirectCount,
        DrawIndirect,
        DrawIndirectCount,
        DrawTexture,
        EndHostConditionalRendering,
        EndTransformFeedback,
        SetAlphaTest,
        SetBlendStateAdvanced,
        SetBlendState,
        SetDepthBias,
        SetDepthClamp,
        SetDepthMode,
        SetDepthTest,
        SetFaceCulling,
        SetFrontFace,
        SetStorageBuffers,
        SetTransformFeedbackBuffers,
        SetUniformBuffers,
        SetImage,
        SetIndexBuffer,
        SetLineParameters,
        SetLogicOpState,
        SetMultisampleState,
        SetPatchParameters,
        SetPointParameters,
        SetPolygonMode,
        SetPrimitiveRestart,
        SetPrimitiveTopology,
        SetProgram,
        SetRasterizerDiscard,
        SetRenderTargetColorMasks,
        SetRenderTargets,
        SetScissor,
        SetStencilTest,
        SetTextureAndSampler,
        SetUserClipDistance,
        SetVertexAttribs,
        SetVertexBuffers,
        SetViewports,
        TextureBarrier,
        TextureBarrierTiled,
        TryHostConditionalRendering,
        TryHostConditionalRenderingFlush,
    }
}
