diff --git a/core/nvrhi_classes.linux.ts b/core/nvrhi_classes.linux.ts index 4094fab..8836e88 100644 --- a/core/nvrhi_classes.linux.ts +++ b/core/nvrhi_classes.linux.ts @@ -10,17 +10,81 @@ import "./nvrhi_abi"; export namespace nvrhi { + export type MemoryRequirements = [size: u64, alignment: u64]; + // skipped: HeapDesc — field 'debugName': C++ class 'std::string' + export type HeapDesc = Opaque; + export type TextureSlice = [x: u32, y: u32, z: u32, width: u32, height: u32, depth: u32, mipLevel: u32, arraySlice: u32]; + export type TiledTextureCoordinate = [mipLevel: u16, arrayLevel: u16, x: u32, y: u32, z: u32]; + export type TiledTextureRegion = [tilesNum: u32, width: u32, height: u32, depth: u32]; + export type TextureTilesMapping = [tiledTextureCoordinates: Ref | null, tiledTextureRegions: Ref | null, byteOffsets: Ref | null, numTextureRegions: u32, heap: IHeap | null]; + export type PackedMipDesc = [numStandardMips: u32, numPackedMips: u32, numTilesForPackedMips: u32, startTileIndexInOverallResource: u32]; + export type TileShape = [widthInTexels: u32, heightInTexels: u32, depthInTexels: u32]; + export type SubresourceTiling = [widthInTiles: u32, heightInTiles: u32, depthInTiles: u32, startTileIndexInOverallResource: u32]; + export type SamplerFeedbackTextureDesc = [samplerFeedbackFormat: u8, samplerFeedbackMipRegionX: u32, samplerFeedbackMipRegionY: u32, samplerFeedbackMipRegionZ: u32, initialState: u32, keepInitialState: boolean]; + // skipped: VertexAttributeDesc — field 'name': C++ class 'std::string' + export type VertexAttributeDesc = Opaque; + // skipped: ShaderDesc — field 'debugName': C++ class 'std::string' + export type ShaderDesc = Opaque; + // skipped: ShaderSpecialization — field 'value': anonymous struct + export type ShaderSpecialization = Opaque; + export type SamplerDesc = [borderColor: Color, maxAnisotropy: f32, mipBias: f32, minFilter: boolean, magFilter: boolean, mipFilter: boolean, addressU: u8, addressV: u8, addressW: u8, reductionType: u8, minLod: f32, maxLod: f32]; + // skipped: FramebufferDesc — field 'colorAttachments': C++ class 'struct nvrhi::static_vector' + export type FramebufferDesc = Opaque; + // skipped: FramebufferInfo — field 'colorFormats': C++ class 'struct nvrhi::static_vector' + export type FramebufferInfo = Opaque; + // skipped: FramebufferInfoEx — derived C++ class + export type FramebufferInfoEx = Opaque; + // skipped: OpacityMicromapDesc — field 'debugName': C++ class 'std::string' + export type OpacityMicromapDesc = Opaque; + // skipped: GeometryDesc — field 'geometryData': 'GeomTypeUnion' is skipped (union) + export type GeometryDesc = Opaque; + // skipped: InstanceDesc — field 'transform': array + export type InstanceDesc = Opaque; + export type AccelStructPrebuildInfo = [resultBytes: u64, scratchBytes: u64, updateScratchBytes: u64]; + // skipped: AccelStructDesc — field 'bottomLevelGeometries': C++ class 'class std::vector' + export type AccelStructDesc = Opaque; + export type OperationMoveParams = [type: u8, maxBytes: u32]; + export type OperationClasBuildParams = [vertexFormat: u8, maxGeometryIndex: u32, maxUniqueGeometryCount: u32, maxTriangleCount: u32, maxVertexCount: u32, maxTotalTriangleCount: u32, maxTotalVertexCount: u32, minPositionTruncateBitCount: u32]; + export type OperationBlasBuildParams = [maxClasPerBlasCount: u32, maxTotalClasCount: u32]; + export type OperationParams = [maxArgCount: u32, type: u8, mode: u8, flags: u8, move: OperationMoveParams, clas: OperationClasBuildParams, blas: OperationBlasBuildParams]; + export type OperationDesc = [params: OperationParams, scratchSizeInBytes: u64, inIndirectArgCountBuffer: IBuffer | null, inIndirectArgCountOffsetInBytes: u64, inIndirectArgsBuffer: IBuffer | null, inIndirectArgsOffsetInBytes: u64, inOutAddressesBuffer: IBuffer | null, inOutAddressesOffsetInBytes: u64, outSizesBuffer: IBuffer | null, outSizesOffsetInBytes: u64, outAccelerationStructuresBuffer: IBuffer | null, outAccelerationStructuresOffsetInBytes: u64]; + // skipped: BindingLayoutDesc — field 'bindings': C++ class 'class std::vector' + export type BindingLayoutDesc = Opaque; + // skipped: BindlessLayoutDesc — field 'registerSpaces': C++ class 'struct nvrhi::static_vector' + export type BindlessLayoutDesc = Opaque; + // skipped: BindingSetItem — bitfield 'type' + export type BindingSetItem = Opaque; + // skipped: BindingSetDesc — field 'bindings': C++ class 'class std::vector' + export type BindingSetDesc = Opaque; + // skipped: GraphicsPipelineDesc — field 'inputLayout': C++ class 'class nvrhi::RefCountPtr' + export type GraphicsPipelineDesc = Opaque; + // skipped: MeshletPipelineDesc — field 'AS': C++ class 'class nvrhi::RefCountPtr' + export type MeshletPipelineDesc = Opaque; + export type IndexBufferBinding = [buffer: IBuffer | null, format: u8, offset: u32]; + // skipped: GraphicsState — field 'viewport': 'ViewportState' is skipped (field 'viewports': C++ class 'struct nvrhi::static_vector') + export type GraphicsState = Opaque; + export type DrawArguments = [vertexCount: u32, instanceCount: u32, startIndexLocation: u32, startVertexLocation: u32, startInstanceLocation: u32]; + // skipped: MeshletState — field 'viewport': 'ViewportState' is skipped (field 'viewports': C++ class 'struct nvrhi::static_vector') + export type MeshletState = Opaque; + // skipped: PipelineDesc — field 'shaders': C++ class 'class std::vector' + export type PipelineDesc = Opaque; + // skipped: State — field 'bindings': C++ class 'struct nvrhi::static_vector' + export type State = Opaque; + export type DispatchRaysArguments = [width: u32, height: u32, depth: u32]; + export type MatrixLayoutDesc = [buffer: IBuffer | null, offset: u64, type: s32, layout: s32, size: index, stride: index]; + export type ConvertMatrixLayoutDesc = [src: MatrixLayoutDesc, dst: MatrixLayoutDesc, numRows: u32, numColumns: u32]; + export type AftermathCrashDumpHelper = Opaque; @cpp export class IResource { // nvrhi::IResource @slot(2) AddRef(): u64; @slot(3) Release(): u64; @slot(4) GetRefCount(): u64; @slot(5) getNativeObject(objectType: u32): NativeObject; - @slot(6) queryMemoryRequirements(outRequirements: Opaque /* MemoryRequirements */): boolean; + @slot(6) queryMemoryRequirements(outRequirements: Ref): boolean; } @cpp export class IHeap extends IResource { // nvrhi::IHeap - @slot(7) getDesc(): Opaque; + @slot(7) getDesc(): HeapDesc; } @cpp export class ITexture extends IResource { // nvrhi::ITexture @@ -29,18 +93,18 @@ export namespace nvrhi { } @cpp export class IStagingTexture extends IResource { // nvrhi::IStagingTexture - @slot(7) getDesc(): Opaque; + @slot(7) getDesc(): Ref; } @cpp export class ISamplerFeedbackTexture extends IResource { // nvrhi::ISamplerFeedbackTexture - @slot(7) getDesc(): Opaque; + @slot(7) getDesc(): Ref; @cppnontrivial @slot(8) getPairedTexture(): RefCountPtr; } @cpp export class IInputLayout extends IResource { // nvrhi::IInputLayout @slot(7) getNumAttributes(): u32; - @slot(8) getAttributeDesc(index: u32): Opaque; + @slot(8) getAttributeDesc(index: u32): VertexAttributeDesc; } @cpp export class IBuffer extends IResource { // nvrhi::IBuffer @@ -49,44 +113,44 @@ export namespace nvrhi { } @cpp export class IShader extends IResource { // nvrhi::IShader - @slot(7) getDesc(): Opaque; - @slot(8) getBytecode(ppBytecode: Ref, pSize: Ref): void; + @slot(7) getDesc(): ShaderDesc; + @slot(8) getBytecode(ppBytecode: Ref | null, pSize: Ref | null): void; } @cpp export class IShaderLibrary extends IResource { // nvrhi::IShaderLibrary - @slot(7) getBytecode(ppBytecode: Ref, pSize: Ref): void; + @slot(7) getBytecode(ppBytecode: Ref | null, pSize: Ref | null): void; @cppnontrivial - @slot(8) getShader(entryName: string, shaderType: u16): RefCountPtr; + @slot(8) getShader(entryName: string | null, shaderType: u16): RefCountPtr; } @cpp export class ISampler extends IResource { // nvrhi::ISampler - @slot(7) getDesc(): Opaque; + @slot(7) getDesc(): Ref; } @cpp export class IFramebuffer extends IResource { // nvrhi::IFramebuffer - @slot(7) getDesc(): Opaque; - @slot(8) getFramebufferInfo(): Opaque; + @slot(7) getDesc(): FramebufferDesc; + @slot(8) getFramebufferInfo(): FramebufferInfoEx; } @cpp export class IOpacityMicromap extends IResource { // nvrhi::rt::IOpacityMicromap - @slot(7) getDesc(): Opaque; + @slot(7) getDesc(): OpacityMicromapDesc; @slot(8) isCompacted(): boolean; @slot(9) getDeviceAddress(): u64; } @cpp export class IAccelStruct extends IResource { // nvrhi::rt::IAccelStruct - @slot(7) getDesc(): Opaque; + @slot(7) getDesc(): AccelStructDesc; @slot(8) isCompacted(): boolean; @slot(9) getDeviceAddress(): u64; } @cpp export class IBindingLayout extends IResource { // nvrhi::IBindingLayout - @slot(7) getDesc(): Opaque; - @slot(8) getBindlessDesc(): Opaque; + @slot(7) getDesc(): BindingLayoutDesc; + @slot(8) getBindlessDesc(): BindlessLayoutDesc; } @cpp export class IBindingSet extends IResource { // nvrhi::IBindingSet - @slot(7) getDesc(): Opaque; + @slot(7) getDesc(): BindingSetDesc; @slot(8) getLayout(): IBindingLayout; } @cpp @@ -96,17 +160,17 @@ export namespace nvrhi { } @cpp export class IGraphicsPipeline extends IResource { // nvrhi::IGraphicsPipeline - @slot(7) getDesc(): Opaque; - @slot(8) getFramebufferInfo(): Opaque; + @slot(7) getDesc(): GraphicsPipelineDesc; + @slot(8) getFramebufferInfo(): FramebufferInfo; } @cpp export class IComputePipeline extends IResource { // nvrhi::IComputePipeline - @slot(7) getDesc(): Opaque; + @slot(7) getDesc(): Ref; } @cpp export class IMeshletPipeline extends IResource { // nvrhi::IMeshletPipeline - @slot(7) getDesc(): Opaque; - @slot(8) getFramebufferInfo(): Opaque; + @slot(7) getDesc(): MeshletPipelineDesc; + @slot(8) getFramebufferInfo(): FramebufferInfo; } @cpp export class IEventQuery extends IResource { // nvrhi::IEventQuery @@ -116,90 +180,90 @@ export namespace nvrhi { } @cpp export class IMessageCallback { // nvrhi::IMessageCallback - @slot(2) message(severity: u8, messageText: string): void; + @slot(2) message(severity: u8, messageText: string | null): void; } @cpp export class IDevice extends IResource { // nvrhi::IDevice @cppnontrivial - @slot(7) createHeap(d: Opaque /* HeapDesc */): RefCountPtr; - @slot(8) queryTopLevelAccelStructPrebuildInfo(desc: Opaque /* rt::AccelStructDesc */, instanceCount: u32, outInfo: Opaque /* rt::AccelStructPrebuildInfo */): boolean; + @slot(7) createHeap(d: HeapDesc): RefCountPtr; + @slot(8) queryTopLevelAccelStructPrebuildInfo(desc: AccelStructDesc, instanceCount: u32, outInfo: Ref): boolean; @cppnontrivial @slot(9) createTexture(d: Ref): RefCountPtr; - @slot(10) getTextureMemoryRequirements(texture: ITexture): [size: u64, alignment: u64]; - @slot(11) bindTextureMemory(texture: ITexture, heap: IHeap, offset: u64): boolean; + @slot(10) getTextureMemoryRequirements(texture: ITexture | null): [size: u64, alignment: u64]; + @slot(11) bindTextureMemory(texture: ITexture | null, heap: IHeap | null, offset: u64): boolean; // skipped: createHandleForNativeTexture — parameter 'texture': struct passed by value @cppnontrivial @slot(13) createStagingTexture(d: Ref, cpuAccess: u8): RefCountPtr; - @slot(14) mapStagingTexture(tex: IStagingTexture, slice: Opaque /* TextureSlice */, cpuAccess: u8, outRowPitch: Ref): Opaque; - @slot(15) unmapStagingTexture(tex: IStagingTexture): void; - @slot(16) getTextureTiling(texture: ITexture, numTiles: Ref, desc: Opaque /* PackedMipDesc */, tileShape: Opaque /* TileShape */, subresourceTilingsNum: Ref, subresourceTilings: Opaque /* SubresourceTiling */): void; - @slot(17) updateTextureTileMappings(texture: ITexture, tileMappings: Opaque /* TextureTilesMapping */, numTileMappings: u32, executionQueue: u8): void; + @slot(14) mapStagingTexture(tex: IStagingTexture | null, slice: Ref, cpuAccess: u8, outRowPitch: Ref | null): Opaque; + @slot(15) unmapStagingTexture(tex: IStagingTexture | null): void; + @slot(16) getTextureTiling(texture: ITexture | null, numTiles: Ref | null, desc: Ref | null, tileShape: Ref | null, subresourceTilingsNum: Ref | null, subresourceTilings: Ref | null): void; + @slot(17) updateTextureTileMappings(texture: ITexture | null, tileMappings: Ref | null, numTileMappings: u32, executionQueue: u8): void; @cppnontrivial - @slot(18) createSamplerFeedbackTexture(pairedTexture: ITexture, desc: Opaque /* SamplerFeedbackTextureDesc */): RefCountPtr; + @slot(18) createSamplerFeedbackTexture(pairedTexture: ITexture | null, desc: Ref): RefCountPtr; // skipped: createSamplerFeedbackForNativeTexture — parameter 'texture': struct passed by value @cppnontrivial @slot(20) createBuffer(d: Ref): RefCountPtr; - @slot(21) mapBuffer(buffer: IBuffer, cpuAccess: u8): Opaque; - @slot(22) unmapBuffer(buffer: IBuffer): void; - @slot(23) getBufferMemoryRequirements(buffer: IBuffer): [size: u64, alignment: u64]; - @slot(24) bindBufferMemory(buffer: IBuffer, heap: IHeap, offset: u64): boolean; + @slot(21) mapBuffer(buffer: IBuffer | null, cpuAccess: u8): Opaque; + @slot(22) unmapBuffer(buffer: IBuffer | null): void; + @slot(23) getBufferMemoryRequirements(buffer: IBuffer | null): [size: u64, alignment: u64]; + @slot(24) bindBufferMemory(buffer: IBuffer | null, heap: IHeap | null, offset: u64): boolean; // skipped: createHandleForNativeBuffer — parameter 'buffer': struct passed by value @cppnontrivial - @slot(26) createShader(d: Opaque /* ShaderDesc */, binary: Opaque | null, binarySize: index): RefCountPtr; + @slot(26) createShader(d: ShaderDesc, binary: Opaque | null, binarySize: index): RefCountPtr; @cppnontrivial - @slot(27) createShaderSpecialization(baseShader: IShader, constants: Opaque /* ShaderSpecialization */, numConstants: u32): RefCountPtr; + @slot(27) createShaderSpecialization(baseShader: IShader | null, constants: ShaderSpecialization | null, numConstants: u32): RefCountPtr; @cppnontrivial @slot(28) createShaderLibrary(binary: Opaque | null, binarySize: index): RefCountPtr; @cppnontrivial - @slot(29) createSampler(d: Opaque /* SamplerDesc */): RefCountPtr; + @slot(29) createSampler(d: Ref): RefCountPtr; @cppnontrivial - @slot(30) createInputLayout(d: Opaque /* VertexAttributeDesc */, attributeCount: u32, vertexShader: IShader): RefCountPtr; + @slot(30) createInputLayout(d: VertexAttributeDesc | null, attributeCount: u32, vertexShader: IShader | null): RefCountPtr; @cppnontrivial @slot(31) createEventQuery(): RefCountPtr; - @slot(32) setEventQuery(query: IEventQuery, queue: u8): void; - @slot(33) pollEventQuery(query: IEventQuery): boolean; - @slot(34) waitEventQuery(query: IEventQuery): void; - @slot(35) resetEventQuery(query: IEventQuery): void; + @slot(32) setEventQuery(query: IEventQuery | null, queue: u8): void; + @slot(33) pollEventQuery(query: IEventQuery | null): boolean; + @slot(34) waitEventQuery(query: IEventQuery | null): void; + @slot(35) resetEventQuery(query: IEventQuery | null): void; @cppnontrivial @slot(36) createTimerQuery(): RefCountPtr; - @slot(37) pollTimerQuery(query: ITimerQuery): boolean; - @slot(38) getTimerQueryTime(query: ITimerQuery): f32; - @slot(39) resetTimerQuery(query: ITimerQuery): void; + @slot(37) pollTimerQuery(query: ITimerQuery | null): boolean; + @slot(38) getTimerQueryTime(query: ITimerQuery | null): f32; + @slot(39) resetTimerQuery(query: ITimerQuery | null): void; @slot(40) getGraphicsAPI(): u8; @cppnontrivial - @slot(41) createFramebuffer(desc: Opaque /* FramebufferDesc */): RefCountPtr; + @slot(41) createFramebuffer(desc: FramebufferDesc): RefCountPtr; @cppnontrivial - @slot(42) createGraphicsPipeline(desc: Opaque /* GraphicsPipelineDesc */, fbinfo: Opaque /* FramebufferInfo */): RefCountPtr; + @slot(42) createGraphicsPipeline(desc: GraphicsPipelineDesc, fbinfo: FramebufferInfo): RefCountPtr; @cppnontrivial - @slot(43) createGraphicsPipeline_2(desc: Opaque /* GraphicsPipelineDesc */, fb: IFramebuffer): RefCountPtr; + @slot(43) createGraphicsPipeline_2(desc: GraphicsPipelineDesc, fb: IFramebuffer | null): RefCountPtr; @cppnontrivial @slot(44) createComputePipeline(desc: Ref): RefCountPtr; @cppnontrivial - @slot(45) createMeshletPipeline(desc: Opaque /* MeshletPipelineDesc */, fbinfo: Opaque /* FramebufferInfo */): RefCountPtr; + @slot(45) createMeshletPipeline(desc: MeshletPipelineDesc, fbinfo: FramebufferInfo): RefCountPtr; @cppnontrivial - @slot(46) createMeshletPipeline_2(desc: Opaque /* MeshletPipelineDesc */, fb: IFramebuffer): RefCountPtr; + @slot(46) createMeshletPipeline_2(desc: MeshletPipelineDesc, fb: IFramebuffer | null): RefCountPtr; @cppnontrivial - @slot(47) createRayTracingPipeline(desc: Opaque /* rt::PipelineDesc */): RefCountPtr; + @slot(47) createRayTracingPipeline(desc: PipelineDesc): RefCountPtr; @cppnontrivial - @slot(48) createBindingLayout(desc: Opaque /* BindingLayoutDesc */): RefCountPtr; + @slot(48) createBindingLayout(desc: BindingLayoutDesc): RefCountPtr; @cppnontrivial - @slot(49) createBindlessLayout(desc: Opaque /* BindlessLayoutDesc */): RefCountPtr; + @slot(49) createBindlessLayout(desc: BindlessLayoutDesc): RefCountPtr; @cppnontrivial - @slot(50) createBindingSet(desc: Opaque /* BindingSetDesc */, layout: IBindingLayout): RefCountPtr; + @slot(50) createBindingSet(desc: BindingSetDesc, layout: IBindingLayout | null): RefCountPtr; @cppnontrivial - @slot(51) createDescriptorTable(layout: IBindingLayout): RefCountPtr; - @slot(52) resizeDescriptorTable(descriptorTable: IDescriptorTable, newSize: u32, keepContents: boolean): void; - @slot(53) writeDescriptorTable(descriptorTable: IDescriptorTable, item: Opaque /* BindingSetItem */): boolean; + @slot(51) createDescriptorTable(layout: IBindingLayout | null): RefCountPtr; + @slot(52) resizeDescriptorTable(descriptorTable: IDescriptorTable | null, newSize: u32, keepContents: boolean): void; + @slot(53) writeDescriptorTable(descriptorTable: IDescriptorTable | null, item: BindingSetItem): boolean; @cppnontrivial - @slot(54) createOpacityMicromap(desc: Opaque /* rt::OpacityMicromapDesc */): RefCountPtr; + @slot(54) createOpacityMicromap(desc: OpacityMicromapDesc): RefCountPtr; @cppnontrivial - @slot(55) createAccelStruct(desc: Opaque /* rt::AccelStructDesc */): RefCountPtr; - @slot(56) getAccelStructMemoryRequirements(as: IAccelStruct): [size: u64, alignment: u64]; - @slot(57) getClusterOperationSizeInfo(params: Opaque /* rt::cluster::OperationParams */): [resultMaxSizeInBytes: u64, scratchSizeInBytes: u64]; - @slot(58) bindAccelStructMemory(as: IAccelStruct, heap: IHeap, offset: u64): boolean; + @slot(55) createAccelStruct(desc: AccelStructDesc): RefCountPtr; + @slot(56) getAccelStructMemoryRequirements(as: IAccelStruct | null): [size: u64, alignment: u64]; + @slot(57) getClusterOperationSizeInfo(params: Ref): [resultMaxSizeInBytes: u64, scratchSizeInBytes: u64]; + @slot(58) bindAccelStructMemory(as: IAccelStruct | null, heap: IHeap | null, offset: u64): boolean; @cppnontrivial @slot(59) createCommandList(params: Ref): RefCountPtr; - @slot(60) executeCommandLists(pCommandLists: Ref, numCommandLists: index, executionQueue: u8): u64; + @slot(60) executeCommandLists(pCommandLists: Ref | null, numCommandLists: index, executionQueue: u8): u64; @slot(61) queueWaitForCommandList(waitQueue: u8, executionQueue: u8, instance: u64): void; @slot(62) waitForIdle(): boolean; @cppnontrivial @@ -214,7 +278,7 @@ export namespace nvrhi { @slot(71) getNativeQueue(objectType: u32, queue: u8): NativeObject; @slot(72) getMessageCallback(): IMessageCallback; @slot(73) isAftermathEnabled(): boolean; - @slot(74) getAftermathCrashDumpHelper(): Opaque; + @slot(74) getAftermathCrashDumpHelper(): AftermathCrashDumpHelper; // skipped: executeCommandList — inline method: no symbol to link against } @cpp @@ -229,60 +293,60 @@ export namespace nvrhi { @slot(10) clearTextureFloat(t: ITexture, mips: u64, arraySlices: u64, clearColor: Ref): void; // skipped: clearDepthStencilTexture — parameter 'subresources': struct passed by value // skipped: clearTextureUInt — parameter 'subresources': struct passed by value - @slot(13) copyTexture(dest: ITexture, destSlice: Opaque /* TextureSlice */, src: ITexture, srcSlice: Opaque /* TextureSlice */): void; - @slot(14) copyTexture_2(dest: IStagingTexture, destSlice: Opaque /* TextureSlice */, src: ITexture, srcSlice: Opaque /* TextureSlice */): void; - @slot(15) copyTexture_3(dest: ITexture, destSlice: Opaque /* TextureSlice */, src: IStagingTexture, srcSlice: Opaque /* TextureSlice */): void; - @slot(16) writeTexture(dest: ITexture, arraySlice: u32, mipLevel: u32, data: Opaque | null, rowPitch: index, depthPitch: index): void; - @slot(17) resolveTexture(dest: ITexture, dstSubresources: Ref, src: ITexture, srcSubresources: Ref): void; - @slot(18) writeBuffer(b: IBuffer, data: Opaque | null, dataSize: index, destOffsetBytes: u64): void; - @slot(19) clearBufferUInt(b: IBuffer, clearValue: u32): void; - @slot(20) copyBuffer(dest: IBuffer, destOffsetBytes: u64, src: IBuffer, srcOffsetBytes: u64, dataSizeBytes: u64): void; - @slot(21) clearSamplerFeedbackTexture(texture: ISamplerFeedbackTexture): void; - @slot(22) decodeSamplerFeedbackTexture(buffer: IBuffer, texture: ISamplerFeedbackTexture, format: u8): void; - @slot(23) setSamplerFeedbackTextureState(texture: ISamplerFeedbackTexture, stateBits: u32): void; + @slot(13) copyTexture(dest: ITexture | null, destSlice: Ref, src: ITexture | null, srcSlice: Ref): void; + @slot(14) copyTexture_2(dest: IStagingTexture | null, destSlice: Ref, src: ITexture | null, srcSlice: Ref): void; + @slot(15) copyTexture_3(dest: ITexture | null, destSlice: Ref, src: IStagingTexture | null, srcSlice: Ref): void; + @slot(16) writeTexture(dest: ITexture | null, arraySlice: u32, mipLevel: u32, data: Opaque | null, rowPitch: index, depthPitch: index): void; + @slot(17) resolveTexture(dest: ITexture | null, dstSubresources: Ref, src: ITexture | null, srcSubresources: Ref): void; + @slot(18) writeBuffer(b: IBuffer | null, data: Opaque | null, dataSize: index, destOffsetBytes: u64): void; + @slot(19) clearBufferUInt(b: IBuffer | null, clearValue: u32): void; + @slot(20) copyBuffer(dest: IBuffer | null, destOffsetBytes: u64, src: IBuffer | null, srcOffsetBytes: u64, dataSizeBytes: u64): void; + @slot(21) clearSamplerFeedbackTexture(texture: ISamplerFeedbackTexture | null): void; + @slot(22) decodeSamplerFeedbackTexture(buffer: IBuffer | null, texture: ISamplerFeedbackTexture | null, format: u8): void; + @slot(23) setSamplerFeedbackTextureState(texture: ISamplerFeedbackTexture | null, stateBits: u32): void; @slot(24) setPushConstants(data: Opaque | null, byteSize: index): void; - @slot(25) setGraphicsState(state: Opaque /* GraphicsState */): void; - @slot(26) draw(args: Opaque /* DrawArguments */): void; - @slot(27) drawIndexed(args: Opaque /* DrawArguments */): void; + @slot(25) setGraphicsState(state: GraphicsState): void; + @slot(26) draw(args: Ref): void; + @slot(27) drawIndexed(args: Ref): void; @slot(28) drawIndirect(offsetBytes: u32, drawCount: u32): void; @slot(29) drawIndexedIndirect(offsetBytes: u32, drawCount: u32): void; @slot(30) drawIndexedIndirectCount(paramOffsetBytes: u32, countOffsetBytes: u32, maxDrawCount: u32): void; @slot(31) setComputeState(state: Ref): void; @slot(32) dispatch(groupsX: u32, groupsY: u32, groupsZ: u32): void; @slot(33) dispatchIndirect(offsetBytes: u32): void; - @slot(34) setMeshletState(state: Opaque /* MeshletState */): void; + @slot(34) setMeshletState(state: MeshletState): void; @slot(35) dispatchMesh(groupsX: u32, groupsY: u32, groupsZ: u32): void; @slot(36) dispatchMeshIndirect(offsetBytes: u32, maxDrawCount: u32): void; @slot(37) dispatchMeshIndirectCount(paramOffsetBytes: u32, countOffsetBytes: u32, maxDrawCount: u32): void; - @slot(38) setRayTracingState(state: Opaque /* rt::State */): void; - @slot(39) dispatchRays(args: Opaque /* rt::DispatchRaysArguments */): void; - @slot(40) buildOpacityMicromap(omm: IOpacityMicromap, desc: Opaque /* rt::OpacityMicromapDesc */): void; - @slot(41) buildBottomLevelAccelStruct(as: IAccelStruct, pGeometries: Opaque /* rt::GeometryDesc */, numGeometries: index, buildFlags: u8): void; + @slot(38) setRayTracingState(state: State): void; + @slot(39) dispatchRays(args: Ref): void; + @slot(40) buildOpacityMicromap(omm: IOpacityMicromap | null, desc: OpacityMicromapDesc): void; + @slot(41) buildBottomLevelAccelStruct(as: IAccelStruct | null, pGeometries: GeometryDesc | null, numGeometries: index, buildFlags: u8): void; @slot(42) compactBottomLevelAccelStructs(): void; - @slot(43) copyRaytracingAccelerationStructure(destination: IAccelStruct, source: IAccelStruct): void; - @slot(44) buildTopLevelAccelStruct(as: IAccelStruct, pInstances: Opaque /* rt::InstanceDesc */, numInstances: index, buildFlags: u8): void; - @slot(45) executeMultiIndirectClusterOperation(desc: Opaque /* rt::cluster::OperationDesc */): void; - @slot(46) buildTopLevelAccelStructFromBuffer(as: IAccelStruct, instanceBuffer: IBuffer, instanceBufferOffset: u64, numInstances: index, buildFlags: u8): void; - @slot(47) convertCoopVecMatrices(convertDescs: Opaque /* coopvec::ConvertMatrixLayoutDesc */, numDescs: index): void; - @slot(48) beginTimerQuery(query: ITimerQuery): void; - @slot(49) endTimerQuery(query: ITimerQuery): void; - @slot(50) beginMarker(name: string): void; + @slot(43) copyRaytracingAccelerationStructure(destination: IAccelStruct | null, source: IAccelStruct | null): void; + @slot(44) buildTopLevelAccelStruct(as: IAccelStruct | null, pInstances: InstanceDesc | null, numInstances: index, buildFlags: u8): void; + @slot(45) executeMultiIndirectClusterOperation(desc: Ref): void; + @slot(46) buildTopLevelAccelStructFromBuffer(as: IAccelStruct | null, instanceBuffer: IBuffer | null, instanceBufferOffset: u64, numInstances: index, buildFlags: u8): void; + @slot(47) convertCoopVecMatrices(convertDescs: Ref | null, numDescs: index): void; + @slot(48) beginTimerQuery(query: ITimerQuery | null): void; + @slot(49) endTimerQuery(query: ITimerQuery | null): void; + @slot(50) beginMarker(name: string | null): void; @slot(51) endMarker(): void; @slot(52) setEnableAutomaticBarriers(enable: boolean): void; - @slot(53) setResourceStatesForBindingSet(bindingSet: IBindingSet): void; - @linkname("_ZN5nvrhi12ICommandList31setResourceStatesForFramebufferEPNS_12IFramebufferE") setResourceStatesForFramebuffer(framebuffer: IFramebuffer): void; - @slot(54) setEnableUavBarriersForTexture(texture: ITexture, enableBarriers: boolean): void; - @slot(55) setEnableUavBarriersForBuffer(buffer: IBuffer, enableBarriers: boolean): void; + @slot(53) setResourceStatesForBindingSet(bindingSet: IBindingSet | null): void; + @linkname("_ZN5nvrhi12ICommandList31setResourceStatesForFramebufferEPNS_12IFramebufferE") setResourceStatesForFramebuffer(framebuffer: IFramebuffer | null): void; + @slot(54) setEnableUavBarriersForTexture(texture: ITexture | null, enableBarriers: boolean): void; + @slot(55) setEnableUavBarriersForBuffer(buffer: IBuffer | null, enableBarriers: boolean): void; // skipped: beginTrackingTextureState — parameter 'subresources': struct passed by value - @slot(57) beginTrackingBufferState(buffer: IBuffer, stateBits: u32): void; + @slot(57) beginTrackingBufferState(buffer: IBuffer | null, stateBits: u32): void; // skipped: setTextureState — parameter 'subresources': struct passed by value - @slot(59) setBufferState(buffer: IBuffer, stateBits: u32): void; - @slot(60) setAccelStructState(as: IAccelStruct, stateBits: u32): void; - @slot(61) setPermanentTextureState(texture: ITexture, stateBits: u32): void; - @slot(62) setPermanentBufferState(buffer: IBuffer, stateBits: u32): void; + @slot(59) setBufferState(buffer: IBuffer | null, stateBits: u32): void; + @slot(60) setAccelStructState(as: IAccelStruct | null, stateBits: u32): void; + @slot(61) setPermanentTextureState(texture: ITexture | null, stateBits: u32): void; + @slot(62) setPermanentBufferState(buffer: IBuffer | null, stateBits: u32): void; @slot(63) commitBarriers(): void; - @slot(64) getTextureSubresourceState(texture: ITexture, arraySlice: u32, mipLevel: u32): u32; - @slot(65) getBufferState(buffer: IBuffer): u32; + @slot(64) getTextureSubresourceState(texture: ITexture | null, arraySlice: u32, mipLevel: u32): u32; + @slot(65) getBufferState(buffer: IBuffer | null): u32; @slot(66) getDevice(): IDevice; @slot(67) getDesc(): Ref; } diff --git a/core/nvrhi_classes.win32.ts b/core/nvrhi_classes.win32.ts index 4bb2d36..7853ff5 100644 --- a/core/nvrhi_classes.win32.ts +++ b/core/nvrhi_classes.win32.ts @@ -10,17 +10,82 @@ import "./nvrhi_abi"; export namespace nvrhi { + export type MemoryRequirements = [size: u64, alignment: u64]; + // skipped: HeapDesc — field 'debugName': C++ class 'class std::basic_string' + export type HeapDesc = Opaque; + export type TextureSlice = [x: u32, y: u32, z: u32, width: u32, height: u32, depth: u32, mipLevel: u32, arraySlice: u32]; + export type TiledTextureCoordinate = [mipLevel: u16, arrayLevel: u16, x: u32, y: u32, z: u32]; + export type TiledTextureRegion = [tilesNum: u32, width: u32, height: u32, depth: u32]; + export type TextureTilesMapping = [tiledTextureCoordinates: Ref | null, tiledTextureRegions: Ref | null, byteOffsets: Ref | null, numTextureRegions: u32, heap: IHeap | null]; + export type PackedMipDesc = [numStandardMips: u32, numPackedMips: u32, numTilesForPackedMips: u32, startTileIndexInOverallResource: u32]; + export type TileShape = [widthInTexels: u32, heightInTexels: u32, depthInTexels: u32]; + export type SubresourceTiling = [widthInTiles: u32, heightInTiles: u32, depthInTiles: u32, startTileIndexInOverallResource: u32]; + export type SamplerFeedbackTextureDesc = [samplerFeedbackFormat: u8, samplerFeedbackMipRegionX: u32, samplerFeedbackMipRegionY: u32, samplerFeedbackMipRegionZ: u32, initialState: u32, keepInitialState: boolean]; + // skipped: VertexAttributeDesc — field 'name': C++ class 'class std::basic_string' + export type VertexAttributeDesc = Opaque; + // skipped: ShaderDesc — field 'debugName': C++ class 'class std::basic_string' + export type ShaderDesc = Opaque; + // skipped: ShaderSpecialization — field 'value': anonymous struct + export type ShaderSpecialization = Opaque; + export type SamplerDesc = [borderColor: Color, maxAnisotropy: f32, mipBias: f32, minFilter: boolean, magFilter: boolean, mipFilter: boolean, addressU: u8, addressV: u8, addressW: u8, reductionType: u8, minLod: f32, maxLod: f32]; + // skipped: FramebufferDesc — field 'colorAttachments': C++ class 'struct nvrhi::static_vector' + export type FramebufferDesc = Opaque; + // skipped: FramebufferInfo — field 'colorFormats': C++ class 'struct nvrhi::static_vector' + export type FramebufferInfo = Opaque; + // skipped: FramebufferInfoEx — derived C++ class + export type FramebufferInfoEx = Opaque; + // skipped: OpacityMicromapDesc — field 'debugName': C++ class 'class std::basic_string' + export type OpacityMicromapDesc = Opaque; + // skipped: GeometryDesc — field 'geometryData': 'GeomTypeUnion' is skipped (union) + export type GeometryDesc = Opaque; + // skipped: InstanceDesc — field 'transform': array + export type InstanceDesc = Opaque; + export type AccelStructPrebuildInfo = [resultBytes: u64, scratchBytes: u64, updateScratchBytes: u64]; + // skipped: AccelStructDesc — field 'bottomLevelGeometries': C++ class 'class std::vector' + export type AccelStructDesc = Opaque; + export type OperationMoveParams = [type: u8, maxBytes: u32]; + export type OperationClasBuildParams = [vertexFormat: u8, maxGeometryIndex: u32, maxUniqueGeometryCount: u32, maxTriangleCount: u32, maxVertexCount: u32, maxTotalTriangleCount: u32, maxTotalVertexCount: u32, minPositionTruncateBitCount: u32]; + export type OperationBlasBuildParams = [maxClasPerBlasCount: u32, maxTotalClasCount: u32]; + export type OperationParams = [maxArgCount: u32, type: u8, mode: u8, flags: u8, move: OperationMoveParams, clas: OperationClasBuildParams, blas: OperationBlasBuildParams]; + export type OperationDesc = [params: OperationParams, scratchSizeInBytes: u64, inIndirectArgCountBuffer: IBuffer | null, inIndirectArgCountOffsetInBytes: u64, inIndirectArgsBuffer: IBuffer | null, inIndirectArgsOffsetInBytes: u64, inOutAddressesBuffer: IBuffer | null, inOutAddressesOffsetInBytes: u64, outSizesBuffer: IBuffer | null, outSizesOffsetInBytes: u64, outAccelerationStructuresBuffer: IBuffer | null, outAccelerationStructuresOffsetInBytes: u64]; + // skipped: BindingLayoutDesc — field 'bindings': C++ class 'class std::vector' + export type BindingLayoutDesc = Opaque; + // skipped: BindlessLayoutDesc — field 'registerSpaces': C++ class 'struct nvrhi::static_vector' + export type BindlessLayoutDesc = Opaque; + // skipped: BindingSetItem — bitfield 'type' + export type BindingSetItem = Opaque; + // skipped: BindingSetDesc — field 'bindings': C++ class 'class std::vector' + export type BindingSetDesc = Opaque; + // skipped: GraphicsPipelineDesc — field 'inputLayout': C++ class 'class nvrhi::RefCountPtr' + export type GraphicsPipelineDesc = Opaque; + // skipped: MeshletPipelineDesc — field 'AS': C++ class 'class nvrhi::RefCountPtr' + export type MeshletPipelineDesc = Opaque; + export type IndexBufferBinding = [buffer: IBuffer | null, format: u8, offset: u32]; + // skipped: GraphicsState — field 'viewport': 'ViewportState' is skipped (field 'viewports': C++ class 'struct nvrhi::static_vector') + export type GraphicsState = Opaque; + export type DrawArguments = [vertexCount: u32, instanceCount: u32, startIndexLocation: u32, startVertexLocation: u32, startInstanceLocation: u32]; + // skipped: MeshletState — field 'viewport': 'ViewportState' is skipped (field 'viewports': C++ class 'struct nvrhi::static_vector') + export type MeshletState = Opaque; + // skipped: PipelineDesc — field 'shaders': C++ class 'class std::vector' + export type PipelineDesc = Opaque; + // skipped: State — field 'bindings': C++ class 'struct nvrhi::static_vector' + export type State = Opaque; + export type DispatchRaysArguments = [width: u32, height: u32, depth: u32]; + export type MatMulFormatCombo = [inputType: s32, inputInterpretation: s32, matrixInterpretation: s32, biasInterpretation: s32, outputType: s32, transposeSupported: boolean]; + export type MatrixLayoutDesc = [buffer: IBuffer | null, offset: u64, type: s32, layout: s32, size: index, stride: index]; + export type ConvertMatrixLayoutDesc = [src: MatrixLayoutDesc, dst: MatrixLayoutDesc, numRows: u32, numColumns: u32]; + export type AftermathCrashDumpHelper = Opaque; @cpp export class IResource { // nvrhi::IResource @slot(1) AddRef(): u32; @slot(2) Release(): u32; @slot(3) GetRefCount(): u32; @slot(4) getNativeObject(objectType: u32): NativeObject; - @slot(5) queryMemoryRequirements(outRequirements: Opaque /* MemoryRequirements */): boolean; + @slot(5) queryMemoryRequirements(outRequirements: Ref): boolean; } @cpp export class IHeap extends IResource { // nvrhi::IHeap - @slot(6) getDesc(): Opaque; + @slot(6) getDesc(): HeapDesc; } @cpp export class ITexture extends IResource { // nvrhi::ITexture @@ -29,18 +94,18 @@ export namespace nvrhi { } @cpp export class IStagingTexture extends IResource { // nvrhi::IStagingTexture - @slot(6) getDesc(): Opaque; + @slot(6) getDesc(): Ref; } @cpp export class ISamplerFeedbackTexture extends IResource { // nvrhi::ISamplerFeedbackTexture - @slot(6) getDesc(): Opaque; + @slot(6) getDesc(): Ref; @cppnontrivial @slot(7) getPairedTexture(): RefCountPtr; } @cpp export class IInputLayout extends IResource { // nvrhi::IInputLayout @slot(6) getNumAttributes(): u32; - @slot(7) getAttributeDesc(index: u32): Opaque; + @slot(7) getAttributeDesc(index: u32): VertexAttributeDesc; } @cpp export class IBuffer extends IResource { // nvrhi::IBuffer @@ -49,44 +114,44 @@ export namespace nvrhi { } @cpp export class IShader extends IResource { // nvrhi::IShader - @slot(6) getDesc(): Opaque; - @slot(7) getBytecode(ppBytecode: Ref, pSize: Ref): void; + @slot(6) getDesc(): ShaderDesc; + @slot(7) getBytecode(ppBytecode: Ref | null, pSize: Ref | null): void; } @cpp export class IShaderLibrary extends IResource { // nvrhi::IShaderLibrary - @slot(6) getBytecode(ppBytecode: Ref, pSize: Ref): void; + @slot(6) getBytecode(ppBytecode: Ref | null, pSize: Ref | null): void; @cppnontrivial - @slot(7) getShader(entryName: string, shaderType: u16): RefCountPtr; + @slot(7) getShader(entryName: string | null, shaderType: u16): RefCountPtr; } @cpp export class ISampler extends IResource { // nvrhi::ISampler - @slot(6) getDesc(): Opaque; + @slot(6) getDesc(): Ref; } @cpp export class IFramebuffer extends IResource { // nvrhi::IFramebuffer - @slot(6) getDesc(): Opaque; - @slot(7) getFramebufferInfo(): Opaque; + @slot(6) getDesc(): FramebufferDesc; + @slot(7) getFramebufferInfo(): FramebufferInfoEx; } @cpp export class IOpacityMicromap extends IResource { // nvrhi::rt::IOpacityMicromap - @slot(6) getDesc(): Opaque; + @slot(6) getDesc(): OpacityMicromapDesc; @slot(7) isCompacted(): boolean; @slot(8) getDeviceAddress(): u64; } @cpp export class IAccelStruct extends IResource { // nvrhi::rt::IAccelStruct - @slot(6) getDesc(): Opaque; + @slot(6) getDesc(): AccelStructDesc; @slot(7) isCompacted(): boolean; @slot(8) getDeviceAddress(): u64; } @cpp export class IBindingLayout extends IResource { // nvrhi::IBindingLayout - @slot(6) getDesc(): Opaque; - @slot(7) getBindlessDesc(): Opaque; + @slot(6) getDesc(): BindingLayoutDesc; + @slot(7) getBindlessDesc(): BindlessLayoutDesc; } @cpp export class IBindingSet extends IResource { // nvrhi::IBindingSet - @slot(6) getDesc(): Opaque; + @slot(6) getDesc(): BindingSetDesc; @slot(7) getLayout(): IBindingLayout; } @cpp @@ -96,17 +161,17 @@ export namespace nvrhi { } @cpp export class IGraphicsPipeline extends IResource { // nvrhi::IGraphicsPipeline - @slot(6) getDesc(): Opaque; - @slot(7) getFramebufferInfo(): Opaque; + @slot(6) getDesc(): GraphicsPipelineDesc; + @slot(7) getFramebufferInfo(): FramebufferInfo; } @cpp export class IComputePipeline extends IResource { // nvrhi::IComputePipeline - @slot(6) getDesc(): Opaque; + @slot(6) getDesc(): Ref; } @cpp export class IMeshletPipeline extends IResource { // nvrhi::IMeshletPipeline - @slot(6) getDesc(): Opaque; - @slot(7) getFramebufferInfo(): Opaque; + @slot(6) getDesc(): MeshletPipelineDesc; + @slot(7) getFramebufferInfo(): FramebufferInfo; } @cpp export class IEventQuery extends IResource { // nvrhi::IEventQuery @@ -116,90 +181,90 @@ export namespace nvrhi { } @cpp export class IMessageCallback { // nvrhi::IMessageCallback - @slot(1) message(severity: u8, messageText: string): void; + @slot(1) message(severity: u8, messageText: string | null): void; } @cpp export class IDevice extends IResource { // nvrhi::IDevice @cppnontrivial - @slot(6) createHeap(d: Opaque /* HeapDesc */): RefCountPtr; - @slot(7) queryTopLevelAccelStructPrebuildInfo(desc: Opaque /* rt::AccelStructDesc */, instanceCount: u32, outInfo: Opaque /* rt::AccelStructPrebuildInfo */): boolean; + @slot(6) createHeap(d: HeapDesc): RefCountPtr; + @slot(7) queryTopLevelAccelStructPrebuildInfo(desc: AccelStructDesc, instanceCount: u32, outInfo: Ref): boolean; @cppnontrivial @slot(8) createTexture(d: Ref): RefCountPtr; - @slot(9) getTextureMemoryRequirements(texture: ITexture): [size: u64, alignment: u64]; - @slot(10) bindTextureMemory(texture: ITexture, heap: IHeap, offset: u64): boolean; + @slot(9) getTextureMemoryRequirements(texture: ITexture | null): [size: u64, alignment: u64]; + @slot(10) bindTextureMemory(texture: ITexture | null, heap: IHeap | null, offset: u64): boolean; // skipped: createHandleForNativeTexture — parameter 'texture': struct passed by value @cppnontrivial @slot(12) createStagingTexture(d: Ref, cpuAccess: u8): RefCountPtr; - @slot(13) mapStagingTexture(tex: IStagingTexture, slice: Opaque /* TextureSlice */, cpuAccess: u8, outRowPitch: Ref): Opaque; - @slot(14) unmapStagingTexture(tex: IStagingTexture): void; - @slot(15) getTextureTiling(texture: ITexture, numTiles: Ref, desc: Opaque /* PackedMipDesc */, tileShape: Opaque /* TileShape */, subresourceTilingsNum: Ref, subresourceTilings: Opaque /* SubresourceTiling */): void; - @slot(16) updateTextureTileMappings(texture: ITexture, tileMappings: Opaque /* TextureTilesMapping */, numTileMappings: u32, executionQueue: u8): void; + @slot(13) mapStagingTexture(tex: IStagingTexture | null, slice: Ref, cpuAccess: u8, outRowPitch: Ref | null): Opaque; + @slot(14) unmapStagingTexture(tex: IStagingTexture | null): void; + @slot(15) getTextureTiling(texture: ITexture | null, numTiles: Ref | null, desc: Ref | null, tileShape: Ref | null, subresourceTilingsNum: Ref | null, subresourceTilings: Ref | null): void; + @slot(16) updateTextureTileMappings(texture: ITexture | null, tileMappings: Ref | null, numTileMappings: u32, executionQueue: u8): void; @cppnontrivial - @slot(17) createSamplerFeedbackTexture(pairedTexture: ITexture, desc: Opaque /* SamplerFeedbackTextureDesc */): RefCountPtr; + @slot(17) createSamplerFeedbackTexture(pairedTexture: ITexture | null, desc: Ref): RefCountPtr; // skipped: createSamplerFeedbackForNativeTexture — parameter 'texture': struct passed by value @cppnontrivial @slot(19) createBuffer(d: Ref): RefCountPtr; - @slot(20) mapBuffer(buffer: IBuffer, cpuAccess: u8): Opaque; - @slot(21) unmapBuffer(buffer: IBuffer): void; - @slot(22) getBufferMemoryRequirements(buffer: IBuffer): [size: u64, alignment: u64]; - @slot(23) bindBufferMemory(buffer: IBuffer, heap: IHeap, offset: u64): boolean; + @slot(20) mapBuffer(buffer: IBuffer | null, cpuAccess: u8): Opaque; + @slot(21) unmapBuffer(buffer: IBuffer | null): void; + @slot(22) getBufferMemoryRequirements(buffer: IBuffer | null): [size: u64, alignment: u64]; + @slot(23) bindBufferMemory(buffer: IBuffer | null, heap: IHeap | null, offset: u64): boolean; // skipped: createHandleForNativeBuffer — parameter 'buffer': struct passed by value @cppnontrivial - @slot(25) createShader(d: Opaque /* ShaderDesc */, binary: Opaque | null, binarySize: index): RefCountPtr; + @slot(25) createShader(d: ShaderDesc, binary: Opaque | null, binarySize: index): RefCountPtr; @cppnontrivial - @slot(26) createShaderSpecialization(baseShader: IShader, constants: Opaque /* ShaderSpecialization */, numConstants: u32): RefCountPtr; + @slot(26) createShaderSpecialization(baseShader: IShader | null, constants: ShaderSpecialization | null, numConstants: u32): RefCountPtr; @cppnontrivial @slot(27) createShaderLibrary(binary: Opaque | null, binarySize: index): RefCountPtr; @cppnontrivial - @slot(28) createSampler(d: Opaque /* SamplerDesc */): RefCountPtr; + @slot(28) createSampler(d: Ref): RefCountPtr; @cppnontrivial - @slot(29) createInputLayout(d: Opaque /* VertexAttributeDesc */, attributeCount: u32, vertexShader: IShader): RefCountPtr; + @slot(29) createInputLayout(d: VertexAttributeDesc | null, attributeCount: u32, vertexShader: IShader | null): RefCountPtr; @cppnontrivial @slot(30) createEventQuery(): RefCountPtr; - @slot(31) setEventQuery(query: IEventQuery, queue: u8): void; - @slot(32) pollEventQuery(query: IEventQuery): boolean; - @slot(33) waitEventQuery(query: IEventQuery): void; - @slot(34) resetEventQuery(query: IEventQuery): void; + @slot(31) setEventQuery(query: IEventQuery | null, queue: u8): void; + @slot(32) pollEventQuery(query: IEventQuery | null): boolean; + @slot(33) waitEventQuery(query: IEventQuery | null): void; + @slot(34) resetEventQuery(query: IEventQuery | null): void; @cppnontrivial @slot(35) createTimerQuery(): RefCountPtr; - @slot(36) pollTimerQuery(query: ITimerQuery): boolean; - @slot(37) getTimerQueryTime(query: ITimerQuery): f32; - @slot(38) resetTimerQuery(query: ITimerQuery): void; + @slot(36) pollTimerQuery(query: ITimerQuery | null): boolean; + @slot(37) getTimerQueryTime(query: ITimerQuery | null): f32; + @slot(38) resetTimerQuery(query: ITimerQuery | null): void; @slot(39) getGraphicsAPI(): u8; @cppnontrivial - @slot(40) createFramebuffer(desc: Opaque /* FramebufferDesc */): RefCountPtr; + @slot(40) createFramebuffer(desc: FramebufferDesc): RefCountPtr; @cppnontrivial - @slot(42) createGraphicsPipeline(desc: Opaque /* GraphicsPipelineDesc */, fbinfo: Opaque /* FramebufferInfo */): RefCountPtr; + @slot(42) createGraphicsPipeline(desc: GraphicsPipelineDesc, fbinfo: FramebufferInfo): RefCountPtr; @cppnontrivial - @slot(41) createGraphicsPipeline_2(desc: Opaque /* GraphicsPipelineDesc */, fb: IFramebuffer): RefCountPtr; + @slot(41) createGraphicsPipeline_2(desc: GraphicsPipelineDesc, fb: IFramebuffer | null): RefCountPtr; @cppnontrivial @slot(43) createComputePipeline(desc: Ref): RefCountPtr; @cppnontrivial - @slot(45) createMeshletPipeline(desc: Opaque /* MeshletPipelineDesc */, fbinfo: Opaque /* FramebufferInfo */): RefCountPtr; + @slot(45) createMeshletPipeline(desc: MeshletPipelineDesc, fbinfo: FramebufferInfo): RefCountPtr; @cppnontrivial - @slot(44) createMeshletPipeline_2(desc: Opaque /* MeshletPipelineDesc */, fb: IFramebuffer): RefCountPtr; + @slot(44) createMeshletPipeline_2(desc: MeshletPipelineDesc, fb: IFramebuffer | null): RefCountPtr; @cppnontrivial - @slot(46) createRayTracingPipeline(desc: Opaque /* rt::PipelineDesc */): RefCountPtr; + @slot(46) createRayTracingPipeline(desc: PipelineDesc): RefCountPtr; @cppnontrivial - @slot(47) createBindingLayout(desc: Opaque /* BindingLayoutDesc */): RefCountPtr; + @slot(47) createBindingLayout(desc: BindingLayoutDesc): RefCountPtr; @cppnontrivial - @slot(48) createBindlessLayout(desc: Opaque /* BindlessLayoutDesc */): RefCountPtr; + @slot(48) createBindlessLayout(desc: BindlessLayoutDesc): RefCountPtr; @cppnontrivial - @slot(49) createBindingSet(desc: Opaque /* BindingSetDesc */, layout: IBindingLayout): RefCountPtr; + @slot(49) createBindingSet(desc: BindingSetDesc, layout: IBindingLayout | null): RefCountPtr; @cppnontrivial - @slot(50) createDescriptorTable(layout: IBindingLayout): RefCountPtr; - @slot(51) resizeDescriptorTable(descriptorTable: IDescriptorTable, newSize: u32, keepContents: boolean): void; - @slot(52) writeDescriptorTable(descriptorTable: IDescriptorTable, item: Opaque /* BindingSetItem */): boolean; + @slot(50) createDescriptorTable(layout: IBindingLayout | null): RefCountPtr; + @slot(51) resizeDescriptorTable(descriptorTable: IDescriptorTable | null, newSize: u32, keepContents: boolean): void; + @slot(52) writeDescriptorTable(descriptorTable: IDescriptorTable | null, item: BindingSetItem): boolean; @cppnontrivial - @slot(53) createOpacityMicromap(desc: Opaque /* rt::OpacityMicromapDesc */): RefCountPtr; + @slot(53) createOpacityMicromap(desc: OpacityMicromapDesc): RefCountPtr; @cppnontrivial - @slot(54) createAccelStruct(desc: Opaque /* rt::AccelStructDesc */): RefCountPtr; - @slot(55) getAccelStructMemoryRequirements(as: IAccelStruct): [size: u64, alignment: u64]; - @slot(56) getClusterOperationSizeInfo(params: Opaque /* rt::cluster::OperationParams */): [resultMaxSizeInBytes: u64, scratchSizeInBytes: u64]; - @slot(57) bindAccelStructMemory(as: IAccelStruct, heap: IHeap, offset: u64): boolean; + @slot(54) createAccelStruct(desc: AccelStructDesc): RefCountPtr; + @slot(55) getAccelStructMemoryRequirements(as: IAccelStruct | null): [size: u64, alignment: u64]; + @slot(56) getClusterOperationSizeInfo(params: Ref): [resultMaxSizeInBytes: u64, scratchSizeInBytes: u64]; + @slot(57) bindAccelStructMemory(as: IAccelStruct | null, heap: IHeap | null, offset: u64): boolean; @cppnontrivial @slot(58) createCommandList(params: Ref): RefCountPtr; - @slot(59) executeCommandLists(pCommandLists: Ref, numCommandLists: index, executionQueue: u8): u64; + @slot(59) executeCommandLists(pCommandLists: Ref | null, numCommandLists: index, executionQueue: u8): u64; @slot(60) queueWaitForCommandList(waitQueue: u8, executionQueue: u8, instance: u64): void; @slot(61) waitForIdle(): boolean; @cppnontrivial @@ -208,13 +273,13 @@ export namespace nvrhi { @slot(64) queryFeatureSupport(feature: u8, pInfo: Opaque | null, infoSize: index): boolean; @slot(65) queryFormatSupport(format: u8): u32; // skipped: queryCoopVecFeatures — result: record returned by value: field 'matMulFormats': C++ class 'class std::vector' - @slot(67) queryCoopVecMatMulFormatSupport(combination: Opaque /* coopvec::MatMulFormatCombo */): [supported: boolean, transposeSupported: boolean, emulatedInputs: boolean]; + @slot(67) queryCoopVecMatMulFormatSupport(combination: Ref): [supported: boolean, transposeSupported: boolean, emulatedInputs: boolean]; @slot(68) queryCoopVecTrainingFormatSupport(componentType: s32): [bufferTrainingSupported: boolean, threadOuterProductSupported: boolean, bufferAccumulateStoreSupported: boolean, groupSharedAccumulateStoreSupported: boolean]; @slot(69) getCoopVecMatrixSize(type: s32, layout: s32, rows: s32, columns: s32): index; @slot(70) getNativeQueue(objectType: u32, queue: u8): NativeObject; @slot(71) getMessageCallback(): IMessageCallback; @slot(72) isAftermathEnabled(): boolean; - @slot(73) getAftermathCrashDumpHelper(): Opaque; + @slot(73) getAftermathCrashDumpHelper(): AftermathCrashDumpHelper; // skipped: executeCommandList — inline method: no symbol to link against } @cpp @@ -229,60 +294,60 @@ export namespace nvrhi { @slot(9) clearTextureFloat(t: ITexture, subresources: Ref, clearColor: Ref): void; // skipped: clearDepthStencilTexture — parameter 'subresources': struct passed by value // skipped: clearTextureUInt — parameter 'subresources': struct passed by value - @slot(14) copyTexture(dest: ITexture, destSlice: Opaque /* TextureSlice */, src: ITexture, srcSlice: Opaque /* TextureSlice */): void; - @slot(13) copyTexture_2(dest: IStagingTexture, destSlice: Opaque /* TextureSlice */, src: ITexture, srcSlice: Opaque /* TextureSlice */): void; - @slot(12) copyTexture_3(dest: ITexture, destSlice: Opaque /* TextureSlice */, src: IStagingTexture, srcSlice: Opaque /* TextureSlice */): void; - @slot(15) writeTexture(dest: ITexture, arraySlice: u32, mipLevel: u32, data: Opaque | null, rowPitch: index, depthPitch: index): void; - @slot(16) resolveTexture(dest: ITexture, dstSubresources: Ref, src: ITexture, srcSubresources: Ref): void; - @slot(17) writeBuffer(b: IBuffer, data: Opaque | null, dataSize: index, destOffsetBytes: u64): void; - @slot(18) clearBufferUInt(b: IBuffer, clearValue: u32): void; - @slot(19) copyBuffer(dest: IBuffer, destOffsetBytes: u64, src: IBuffer, srcOffsetBytes: u64, dataSizeBytes: u64): void; - @slot(20) clearSamplerFeedbackTexture(texture: ISamplerFeedbackTexture): void; - @slot(21) decodeSamplerFeedbackTexture(buffer: IBuffer, texture: ISamplerFeedbackTexture, format: u8): void; - @slot(22) setSamplerFeedbackTextureState(texture: ISamplerFeedbackTexture, stateBits: u32): void; + @slot(14) copyTexture(dest: ITexture | null, destSlice: Ref, src: ITexture | null, srcSlice: Ref): void; + @slot(13) copyTexture_2(dest: IStagingTexture | null, destSlice: Ref, src: ITexture | null, srcSlice: Ref): void; + @slot(12) copyTexture_3(dest: ITexture | null, destSlice: Ref, src: IStagingTexture | null, srcSlice: Ref): void; + @slot(15) writeTexture(dest: ITexture | null, arraySlice: u32, mipLevel: u32, data: Opaque | null, rowPitch: index, depthPitch: index): void; + @slot(16) resolveTexture(dest: ITexture | null, dstSubresources: Ref, src: ITexture | null, srcSubresources: Ref): void; + @slot(17) writeBuffer(b: IBuffer | null, data: Opaque | null, dataSize: index, destOffsetBytes: u64): void; + @slot(18) clearBufferUInt(b: IBuffer | null, clearValue: u32): void; + @slot(19) copyBuffer(dest: IBuffer | null, destOffsetBytes: u64, src: IBuffer | null, srcOffsetBytes: u64, dataSizeBytes: u64): void; + @slot(20) clearSamplerFeedbackTexture(texture: ISamplerFeedbackTexture | null): void; + @slot(21) decodeSamplerFeedbackTexture(buffer: IBuffer | null, texture: ISamplerFeedbackTexture | null, format: u8): void; + @slot(22) setSamplerFeedbackTextureState(texture: ISamplerFeedbackTexture | null, stateBits: u32): void; @slot(23) setPushConstants(data: Opaque | null, byteSize: index): void; - @slot(24) setGraphicsState(state: Opaque /* GraphicsState */): void; - @slot(25) draw(args: Opaque /* DrawArguments */): void; - @slot(26) drawIndexed(args: Opaque /* DrawArguments */): void; + @slot(24) setGraphicsState(state: GraphicsState): void; + @slot(25) draw(args: Ref): void; + @slot(26) drawIndexed(args: Ref): void; @slot(27) drawIndirect(offsetBytes: u32, drawCount: u32): void; @slot(28) drawIndexedIndirect(offsetBytes: u32, drawCount: u32): void; @slot(29) drawIndexedIndirectCount(paramOffsetBytes: u32, countOffsetBytes: u32, maxDrawCount: u32): void; @slot(30) setComputeState(state: Ref): void; @slot(31) dispatch(groupsX: u32, groupsY: u32, groupsZ: u32): void; @slot(32) dispatchIndirect(offsetBytes: u32): void; - @slot(33) setMeshletState(state: Opaque /* MeshletState */): void; + @slot(33) setMeshletState(state: MeshletState): void; @slot(34) dispatchMesh(groupsX: u32, groupsY: u32, groupsZ: u32): void; @slot(35) dispatchMeshIndirect(offsetBytes: u32, maxDrawCount: u32): void; @slot(36) dispatchMeshIndirectCount(paramOffsetBytes: u32, countOffsetBytes: u32, maxDrawCount: u32): void; - @slot(37) setRayTracingState(state: Opaque /* rt::State */): void; - @slot(38) dispatchRays(args: Opaque /* rt::DispatchRaysArguments */): void; - @slot(39) buildOpacityMicromap(omm: IOpacityMicromap, desc: Opaque /* rt::OpacityMicromapDesc */): void; - @slot(40) buildBottomLevelAccelStruct(as: IAccelStruct, pGeometries: Opaque /* rt::GeometryDesc */, numGeometries: index, buildFlags: u8): void; + @slot(37) setRayTracingState(state: State): void; + @slot(38) dispatchRays(args: Ref): void; + @slot(39) buildOpacityMicromap(omm: IOpacityMicromap | null, desc: OpacityMicromapDesc): void; + @slot(40) buildBottomLevelAccelStruct(as: IAccelStruct | null, pGeometries: GeometryDesc | null, numGeometries: index, buildFlags: u8): void; @slot(41) compactBottomLevelAccelStructs(): void; - @slot(42) copyRaytracingAccelerationStructure(destination: IAccelStruct, source: IAccelStruct): void; - @slot(43) buildTopLevelAccelStruct(as: IAccelStruct, pInstances: Opaque /* rt::InstanceDesc */, numInstances: index, buildFlags: u8): void; - @slot(44) executeMultiIndirectClusterOperation(desc: Opaque /* rt::cluster::OperationDesc */): void; - @slot(45) buildTopLevelAccelStructFromBuffer(as: IAccelStruct, instanceBuffer: IBuffer, instanceBufferOffset: u64, numInstances: index, buildFlags: u8): void; - @slot(46) convertCoopVecMatrices(convertDescs: Opaque /* coopvec::ConvertMatrixLayoutDesc */, numDescs: index): void; - @slot(47) beginTimerQuery(query: ITimerQuery): void; - @slot(48) endTimerQuery(query: ITimerQuery): void; - @slot(49) beginMarker(name: string): void; + @slot(42) copyRaytracingAccelerationStructure(destination: IAccelStruct | null, source: IAccelStruct | null): void; + @slot(43) buildTopLevelAccelStruct(as: IAccelStruct | null, pInstances: InstanceDesc | null, numInstances: index, buildFlags: u8): void; + @slot(44) executeMultiIndirectClusterOperation(desc: Ref): void; + @slot(45) buildTopLevelAccelStructFromBuffer(as: IAccelStruct | null, instanceBuffer: IBuffer | null, instanceBufferOffset: u64, numInstances: index, buildFlags: u8): void; + @slot(46) convertCoopVecMatrices(convertDescs: Ref | null, numDescs: index): void; + @slot(47) beginTimerQuery(query: ITimerQuery | null): void; + @slot(48) endTimerQuery(query: ITimerQuery | null): void; + @slot(49) beginMarker(name: string | null): void; @slot(50) endMarker(): void; @slot(51) setEnableAutomaticBarriers(enable: boolean): void; - @slot(52) setResourceStatesForBindingSet(bindingSet: IBindingSet): void; - @linkname("?setResourceStatesForFramebuffer@ICommandList@nvrhi@@QEAAXPEAVIFramebuffer@2@@Z") setResourceStatesForFramebuffer(framebuffer: IFramebuffer): void; - @slot(53) setEnableUavBarriersForTexture(texture: ITexture, enableBarriers: boolean): void; - @slot(54) setEnableUavBarriersForBuffer(buffer: IBuffer, enableBarriers: boolean): void; + @slot(52) setResourceStatesForBindingSet(bindingSet: IBindingSet | null): void; + @linkname("?setResourceStatesForFramebuffer@ICommandList@nvrhi@@QEAAXPEAVIFramebuffer@2@@Z") setResourceStatesForFramebuffer(framebuffer: IFramebuffer | null): void; + @slot(53) setEnableUavBarriersForTexture(texture: ITexture | null, enableBarriers: boolean): void; + @slot(54) setEnableUavBarriersForBuffer(buffer: IBuffer | null, enableBarriers: boolean): void; // skipped: beginTrackingTextureState — parameter 'subresources': struct passed by value - @slot(56) beginTrackingBufferState(buffer: IBuffer, stateBits: u32): void; + @slot(56) beginTrackingBufferState(buffer: IBuffer | null, stateBits: u32): void; // skipped: setTextureState — parameter 'subresources': struct passed by value - @slot(58) setBufferState(buffer: IBuffer, stateBits: u32): void; - @slot(59) setAccelStructState(as: IAccelStruct, stateBits: u32): void; - @slot(60) setPermanentTextureState(texture: ITexture, stateBits: u32): void; - @slot(61) setPermanentBufferState(buffer: IBuffer, stateBits: u32): void; + @slot(58) setBufferState(buffer: IBuffer | null, stateBits: u32): void; + @slot(59) setAccelStructState(as: IAccelStruct | null, stateBits: u32): void; + @slot(60) setPermanentTextureState(texture: ITexture | null, stateBits: u32): void; + @slot(61) setPermanentBufferState(buffer: IBuffer | null, stateBits: u32): void; @slot(62) commitBarriers(): void; - @slot(63) getTextureSubresourceState(texture: ITexture, arraySlice: u32, mipLevel: u32): u32; - @slot(64) getBufferState(buffer: IBuffer): u32; + @slot(63) getTextureSubresourceState(texture: ITexture | null, arraySlice: u32, mipLevel: u32): u32; + @slot(64) getBufferState(buffer: IBuffer | null): u32; @slot(65) getDevice(): IDevice; @slot(66) getDesc(): Ref; }