yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
591affaf7
master
1// debug-device.h 2#pragma once 3#include "debug-base.h" 4 5namespace gfx 6{ 7using namespace Slang ; 8 9namespace debug 10{ 11 12class DebugDevice :public DebugObject < IDevice > 13{ 14public : 15SlangResult SLANG_MCALL 16queryInterface (SlangUUID const & uuid ,void ** outObject )noexcept override ; 17SLANG_COM_OBJECT_IUNKNOWN_ADD_REF ; 18SLANG_COM_OBJECT_IUNKNOWN_RELEASE ; 19 20public : 21DebugDevice (); 22IDevice * getInterface (const Slang ::Guid & guid ); 23virtual SLANG_NO_THROW Result SLANG_MCALL 24getNativeDeviceHandles (InteropHandles * outHandles )override ; 25virtual SLANG_NO_THROW bool SLANG_MCALL hasFeature (const char * feature )override ; 26virtual SLANG_NO_THROW Result SLANG_MCALL 27getFeatures (const char ** outFeatures ,Size bufferSize ,GfxCount * outFeatureCount )override ; 28virtual SLANG_NO_THROW Result SLANG_MCALL 29getFormatSupportedResourceStates (Format format ,ResourceStateSet * outStates )override ; 30 31virtual SLANG_NO_THROW Result SLANG_MCALL 32getSlangSession (slang ::ISession ** outSlangSession )override ; 33virtual SLANG_NO_THROW Result SLANG_MCALL createTransientResourceHeap ( 34const ITransientResourceHeap ::Desc & desc , 35ITransientResourceHeap ** outHeap )override ; 36virtual SLANG_NO_THROW Result SLANG_MCALL createTextureResource ( 37const ITextureResource ::Desc & desc , 38const ITextureResource ::SubresourceData * initData , 39ITextureResource ** outResource )override ; 40virtual SLANG_NO_THROW Result SLANG_MCALL createTextureFromNativeHandle ( 41InteropHandle handle , 42const ITextureResource ::Desc & srcDesc , 43ITextureResource ** outResource )override ; 44virtual SLANG_NO_THROW Result SLANG_MCALL createTextureFromSharedHandle ( 45InteropHandle handle , 46const ITextureResource ::Desc & srcDesc , 47const Size size , 48ITextureResource ** outResource )override ; 49virtual SLANG_NO_THROW Result SLANG_MCALL createBufferResource ( 50const IBufferResource ::Desc & desc , 51const void * initData , 52IBufferResource ** outResource )override ; 53virtual SLANG_NO_THROW Result SLANG_MCALL createBufferFromNativeHandle ( 54InteropHandle handle , 55const IBufferResource ::Desc & srcDesc , 56IBufferResource ** outResource )override ; 57virtual SLANG_NO_THROW Result SLANG_MCALL createBufferFromSharedHandle ( 58InteropHandle handle , 59const IBufferResource ::Desc & srcDesc , 60IBufferResource ** outResource )override ; 61virtual SLANG_NO_THROW Result SLANG_MCALL 62createSamplerState (ISamplerState ::Desc const & desc ,ISamplerState ** outSampler )override ; 63virtual SLANG_NO_THROW Result SLANG_MCALL createTextureView ( 64ITextureResource * texture , 65IResourceView ::Desc const & desc , 66IResourceView ** outView )override ; 67virtual SLANG_NO_THROW Result SLANG_MCALL createBufferView ( 68IBufferResource * buffer , 69IBufferResource * counterBuffer , 70IResourceView ::Desc const & desc , 71IResourceView ** outView )override ; 72virtual SLANG_NO_THROW Result SLANG_MCALL getAccelerationStructurePrebuildInfo ( 73const IAccelerationStructure ::BuildInputs & buildInputs , 74IAccelerationStructure ::PrebuildInfo * outPrebuildInfo )override ; 75virtual SLANG_NO_THROW Result SLANG_MCALL createAccelerationStructure ( 76const IAccelerationStructure ::CreateDesc & desc , 77IAccelerationStructure ** outView )override ; 78virtual SLANG_NO_THROW Result SLANG_MCALL createFramebufferLayout ( 79IFramebufferLayout ::Desc const & desc , 80IFramebufferLayout ** outFrameBuffer )override ; 81virtual SLANG_NO_THROW Result SLANG_MCALL 82createFramebuffer (IFramebuffer ::Desc const & desc ,IFramebuffer ** outFrameBuffer )override ; 83virtual SLANG_NO_THROW Result SLANG_MCALL createRenderPassLayout ( 84const IRenderPassLayout ::Desc & desc , 85IRenderPassLayout ** outRenderPassLayout )override ; 86virtual SLANG_NO_THROW Result SLANG_MCALL createSwapchain ( 87ISwapchain ::Desc const & desc , 88WindowHandle window , 89ISwapchain ** outSwapchain )override ; 90virtual SLANG_NO_THROW Result SLANG_MCALL 91createInputLayout (IInputLayout ::Desc const & desc ,IInputLayout ** outLayout )override ; 92virtual SLANG_NO_THROW Result SLANG_MCALL 93createCommandQueue (const ICommandQueue ::Desc & desc ,ICommandQueue ** outQueue )override ; 94virtual SLANG_NO_THROW Result SLANG_MCALL createShaderObject ( 95slang ::TypeReflection * type , 96ShaderObjectContainerType container , 97IShaderObject ** outObject )override ; 98virtual SLANG_NO_THROW Result SLANG_MCALL createShaderObject2 ( 99slang ::ISession * session , 100slang ::TypeReflection * type , 101ShaderObjectContainerType container , 102IShaderObject ** outObject )override ; 103virtual SLANG_NO_THROW Result SLANG_MCALL createMutableShaderObject ( 104slang ::TypeReflection * type , 105ShaderObjectContainerType container , 106IShaderObject ** outObject )override ; 107virtual SLANG_NO_THROW Result SLANG_MCALL createMutableShaderObject2 ( 108slang ::ISession * session , 109slang ::TypeReflection * type , 110ShaderObjectContainerType container , 111IShaderObject ** outObject )override ; 112virtual SLANG_NO_THROW Result SLANG_MCALL createShaderObjectFromTypeLayout ( 113slang ::TypeLayoutReflection * typeLayout , 114IShaderObject ** outObject )override ; 115virtual SLANG_NO_THROW Result SLANG_MCALL createMutableShaderObjectFromTypeLayout ( 116slang ::TypeLayoutReflection * typeLayout , 117IShaderObject ** outObject )override ; 118virtual SLANG_NO_THROW Result SLANG_MCALL 119createMutableRootShaderObject (IShaderProgram * program ,IShaderObject ** outObject )override ; 120virtual SLANG_NO_THROW Result SLANG_MCALL createProgram ( 121const IShaderProgram ::Desc & desc , 122IShaderProgram ** outProgram , 123ISlangBlob ** outDiagnostics )override ; 124virtual SLANG_NO_THROW Result SLANG_MCALL createProgram2 ( 125const IShaderProgram ::CreateDesc2 & desc , 126IShaderProgram ** outProgram , 127ISlangBlob ** outDiagnostics )override ; 128virtual SLANG_NO_THROW Result SLANG_MCALL createGraphicsPipelineState ( 129const GraphicsPipelineStateDesc & desc , 130IPipelineState ** outState )override ; 131virtual SLANG_NO_THROW Result SLANG_MCALL createComputePipelineState ( 132const ComputePipelineStateDesc & desc , 133IPipelineState ** outState )override ; 134virtual SLANG_NO_THROW Result SLANG_MCALL createRayTracingPipelineState ( 135const RayTracingPipelineStateDesc & desc , 136IPipelineState ** outState )override ; 137virtual SLANG_NO_THROW SlangResult SLANG_MCALL readTextureResource ( 138ITextureResource * resource , 139ResourceState state , 140ISlangBlob ** outBlob , 141Size * outRowPitch , 142Size * outPixelSize )override ; 143virtual SLANG_NO_THROW SlangResult SLANG_MCALL readBufferResource ( 144IBufferResource * buffer , 145Offset offset , 146Size size , 147ISlangBlob ** outBlob )override ; 148virtual SLANG_NO_THROW const DeviceInfo & SLANG_MCALL getDeviceInfo ()const override ; 149virtual SLANG_NO_THROW Result SLANG_MCALL 150createQueryPool( const IQueryPool ::Desc & desc, IQueryPool ** outPool ) override; 151virtual SLANG_NO_THROW Result SLANG_MCALL 152createFence( const IFence ::Desc & desc, IFence ** outFence ) override; 153virtual SLANG_NO_THROW Result SLANG_MCALL waitForFences ( 154GfxCount fenceCount, 155IFence ** fences, 156uint64_t * values, 157bool waitForAll, 158uint64_t timeout) override; 159virtual SLANG_NO_THROW Result SLANG_MCALL getTextureAllocationInfo ( 160const ITextureResource ::Desc & desc, 161size_t * outSize, 162size_t * outAlignment) override; 163virtual SLANG_NO_THROW Result SLANG_MCALL getTextureRowAlignment ( size_t * outAlignment) override; 164 165virtual SLANG_NO_THROW Result SLANG_MCALL getCooperativeVectorProperties ( 166CooperativeVectorProperties * properties, 167uint32_t * propertyCount) override; 168 169virtual SLANG_NO_THROW Result SLANG_MCALL 170createShaderTable ( const IShaderTable ::Desc & desc, IShaderTable ** outTable) override; 171}; 172 173} // namespace debug 174} // namespace gfx