Browse Source

Merge pull request #7108 from sebavan/WebGPU

Web gpu update
sebavan 5 years ago
parent
commit
af63efb61f
2 changed files with 10 additions and 8 deletions
  1. 6 1
      src/Engines/webgpuEngine.ts
  2. 4 7
      src/LibDeclarations/webgpu.d.ts

+ 6 - 1
src/Engines/webgpuEngine.ts

@@ -2194,7 +2194,12 @@ export class WebGPUEngine extends Engine {
         }
         }
 
 
         // TODO WEBGPU. Optimize buffer reusability and types as more are now allowed.
         // TODO WEBGPU. Optimize buffer reusability and types as more are now allowed.
-        renderPass.setVertexBuffers(vertexInputs.vertexStartSlot, vertexInputs.vertexBuffers, vertexInputs.vertexOffsets);
+        for (let i = 0; i < vertexInputs.vertexBuffers.length; i++) {
+            const buf = vertexInputs.vertexBuffers[i];
+            if (buf) {
+                renderPass.setVertexBuffer(vertexInputs.vertexStartSlot + i, vertexInputs.vertexBuffers[i], vertexInputs.vertexOffsets[i]);
+            }
+        }
     }
     }
 
 
     private _setRenderBindGroups(bindGroups: GPUBindGroup[]): void {
     private _setRenderBindGroups(bindGroups: GPUBindGroup[]): void {

+ 4 - 7
src/LibDeclarations/webgpu.d.ts

@@ -300,8 +300,8 @@ interface GPUDepthStencilStateDescriptor {
   depthWriteEnabled?: boolean;
   depthWriteEnabled?: boolean;
   depthCompare?: GPUCompareFunction;
   depthCompare?: GPUCompareFunction;
 
 
-  stencilFront: GPUStencilStateFaceDescriptor;
-  stencilBack: GPUStencilStateFaceDescriptor;
+  stencilFront?: GPUStencilStateFaceDescriptor;
+  stencilBack?: GPUStencilStateFaceDescriptor;
 
 
   stencilReadMask?: number;
   stencilReadMask?: number;
   stencilWriteMask?: number;
   stencilWriteMask?: number;
@@ -626,11 +626,8 @@ interface GPURenderEncoderBase extends GPUProgrammablePassEncoder {
   setPipeline(pipeline: GPURenderPipeline): void;
   setPipeline(pipeline: GPURenderPipeline): void;
 
 
   setIndexBuffer(buffer: GPUBuffer, offset?: number): void;
   setIndexBuffer(buffer: GPUBuffer, offset?: number): void;
-  setVertexBuffers(
-    startSlot: number,
-    buffers: GPUBuffer[],
-    offsets: number[]
-  ): void;
+
+  setVertexBuffer(slot: number, buffer: GPUBuffer, offset?: number): void;
 
 
   draw(
   draw(
     vertexCount: number,
     vertexCount: number,