private static IntPtr CreateShader(UInt32[] byte_code, char *label = null) { IntPtr shader; fixed(uint *code = byte_code) { WGPUShaderModuleSPIRVDescriptor spirv = new WGPUShaderModuleSPIRVDescriptor() { chain = new WGPUChainedStruct() { sType = WGPUSType.WGPUSType_ShaderModuleSPIRVDescriptor }, codeSize = (uint)byte_code.Length, code = code }; WGPUShaderModuleDescriptor desc = new WGPUShaderModuleDescriptor() { nextInChain = (WGPUChainedStruct *)&spirv, label = label }; shader = WebGPUNative.wgpuDeviceCreateShaderModule(Device, &desc); } return(shader); }