core icon indicating copy to clipboard operation
core copied to clipboard

panic: runtime error: index out of range [0] with length 0

Open dufguix opened this issue 10 months ago • 17 comments

Hi. Trying cogentcore on windows 11 24H2.

Followed: https://www.cogentcore.org/core/install

Demo -> Panic

go run cogentcore.org/core/examples/demo@main panic: runtime error: index out of range [0] with length 0

Other test -> Good

go run github.com/cogentcore/webgpu/examples/triangle@main works as expected.

Simple code test ->Panic

panic: runtime error: index out of range [0] with length 0

package main

import "cogentcore.org/core/core"

func main() {
	b := core.NewBody()
	core.NewButton(b).SetText("Hello, World!")
	b.RunMainWindow()
}

Am I missing something ?

dufguix avatar Feb 24 '25 16:02 dufguix

go run cogentcore.org/core/gpu/cmd/webgpuinfo@main - result:

Default WebGPU Adapter number: 2   Type: cpu   Backend: d3d12
Set the GPU_DEVICE environment variable to an adapter number to select a different GPU

#####################################################################
WebGPU Adapter number: 0   Type: discrete-gpu   Backend: vulkan
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 7817,
        "Name": "0x1e89",
        "DriverDescription": "NVIDIA GeForce RTX 2060",
        "AdapterType": 0,
        "BackendType": 6
}

{
        "Limits": {
                "MaxTextureDimension1D": 32768,
                "MaxTextureDimension2D": 32768,
                "MaxTextureDimension3D": 16384,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 1000,
                "MaxDynamicUniformBuffersPerPipelineLayout": 15,
                "MaxDynamicStorageBuffersPerPipelineLayout": 16,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 1048576,
                "MaxStorageBuffersPerShaderStage": 1048576,
                "MaxStorageTexturesPerShaderStage": 1048576,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 64,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 18446744073709551615,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 128,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 49152,
                "MaxComputeInvocationsPerWorkgroup": 1024,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2517303680
        }
}


#####################################################################
WebGPU Adapter number: 1   Type: discrete-gpu   Backend: d3d12
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 7817,
        "Name": "0x1e89",
        "DriverDescription": "NVIDIA GeForce RTX 2060",
        "AdapterType": 0,
        "BackendType": 4
}

{
        "Limits": {
                "MaxTextureDimension1D": 16384,
                "MaxTextureDimension2D": 16384,
                "MaxTextureDimension3D": 2048,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 8,
                "MaxDynamicStorageBuffersPerPipelineLayout": 4,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 2048,
                "MaxStorageBuffersPerShaderStage": 262144,
                "MaxStorageTexturesPerShaderStage": 262144,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 60,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 16384,
                "MaxComputeInvocationsPerWorkgroup": 768,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2517303680
        }
}


#####################################################################
WebGPU Adapter number: 2   Type: cpu   Backend: d3d12
{
        "VendorId": 5140,
        "VendorName": "0x1414",
        "Architecture": "",
        "DeviceId": 140,
        "Name": "0x8c",
        "DriverDescription": "Microsoft Basic Render Driver",
        "AdapterType": 2,
        "BackendType": 4
}

{
        "Limits": {
                "MaxTextureDimension1D": 16384,
                "MaxTextureDimension2D": 16384,
                "MaxTextureDimension3D": 2048,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 8,
                "MaxDynamicStorageBuffersPerPipelineLayout": 4,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 2048,
                "MaxStorageBuffersPerShaderStage": 262144,
                "MaxStorageTexturesPerShaderStage": 262144,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 60,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 16384,
                "MaxComputeInvocationsPerWorkgroup": 768,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2517303680
        }
}


#####################################################################
WebGPU Adapter number: 3   Type: unknown   Backend: open-gl
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 0,
        "Name": "0x0",
        "DriverDescription": "NVIDIA GeForce RTX 2060/PCIe/SSE2",
        "AdapterType": 3,
        "BackendType": 7
}

{
        "Limits": {
                "MaxTextureDimension1D": 32768,
                "MaxTextureDimension2D": 32768,
                "MaxTextureDimension3D": 16384,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 14,
                "MaxDynamicStorageBuffersPerPipelineLayout": 16,
                "MaxSampledTexturesPerShaderStage": 16,
                "MaxSamplersPerShaderStage": 16,
                "MaxStorageBuffersPerShaderStage": 16,
                "MaxStorageTexturesPerShaderStage": 8,
                "MaxUniformBuffersPerShaderStage": 14,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483647,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 16,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 124,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 49152,
                "MaxComputeInvocationsPerWorkgroup": 1024,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2517303680
        }
}

dufguix avatar Feb 24 '25 17:02 dufguix

@dufguix

  1. do you have full stack trace of an error?
  2. could you constantly reproduce the error above?
  3. do you use any rdp software?
  4. what monitors are available and how they are connected to computing machine?

AnyCPU avatar Feb 24 '25 18:02 AnyCPU

@dufguix In addition to answering @AnyCPU's questions (particularly the first one), can you try replacing @main with @2230780 in your command to run the basic core example, since that contains fallback logic (#1478) that I implemented for someone else to test given that they had a similar issue.

However, regardless of whether that works, I think I see the issue in your webgpuinfo output:

Default WebGPU Adapter number: 2   Type: cpu   Backend: d3d12

We have logic we implemented to fix another issue (#1247) that tries to avoid discrete NVIDIA GPUs for now given an underlying issue in webgpu, but selecting a Microsoft Basic Render Driver CPU backend is not good. We will likely change that code to fix this issue. Thank you for reporting this.

kkoreilly avatar Feb 24 '25 18:02 kkoreilly

stack trace:

2025/02/24 20:25:51 panic: runtime error: index out of range [0] with length 0
2025/02/24 20:25:51
2025/02/24 20:25:51 ----- START OF STACK TRACE: -----
2025/02/24 20:25:51 goroutine 1 [running, locked to thread]:
runtime/debug.Stack()
        C:/Program Files/Go/src/runtime/debug/stack.go:26 +0x5e
cogentcore.org/core/system.HandleRecoverBase({0x7ff6de9a5f80, 0xc006d58048})
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/recover.go:50 +0x4b
cogentcore.org/core/core.handleRecover({0x7ff6de9a5f80, 0xc006d58048})
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/recover.go:37 +0x52
cogentcore.org/core/core.(*Stage).run.func1()
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:333 +0x24
panic({0x7ff6de9a5f80?, 0xc006d58048?})
        C:/Program Files/Go/src/runtime/panic.go:787 +0x132
cogentcore.org/core/gpu.(*Surface).InitConfig(0xc006d60008)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:143 +0x23f
cogentcore.org/core/gpu.(*Surface).init(0xc006d60008, 0x1d?, 0x400000002?, {0xc0037262b8?, 0xc003726258?}, 0x1, 0x0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:83 +0x10b
cogentcore.org/core/gpu.NewSurface(0xc003726240, 0xc0103e3530, {0x120?, 0x2b0?}, 0x1, 0x0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:60 +0xb8
cogentcore.org/core/system/driver/desktop.(*App).NewWindow.func2()
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/desktop/app.go:132 +0x145
cogentcore.org/core/system/driver/base.(*App).RunOnMain(0x0?, 0x0?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/base/app.go:91 +0x9b
cogentcore.org/core/system/driver/desktop.(*App).NewWindow(0x7ff6df8c47c0, 0xc0002facc0?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/desktop/app.go:121 +0x405
cogentcore.org/core/core.newRenderWindow({0xc005fcaa20, 0x22}, {0x7ff6dea5935f, 0x10}, 0xc0002facc0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/renderwindow.go:115 +0xa2
cogentcore.org/core/core.(*Stage).newRenderWindow(0xc0068489c0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:403 +0x2eb
cogentcore.org/core/core.(*Stage).runWindow(0xc0068489c0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:270 +0x685
cogentcore.org/core/core.(*Stage).run(0x4?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:336 +0x88
cogentcore.org/core/core.(*Stage).Run(0xc000000000?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:315 +0x7a
cogentcore.org/core/core.(*Body).RunWindow(0xc006a0e808?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:87 +0x47
cogentcore.org/core/core.(*Body).RunMainWindow(0xc0001eea88?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:47 +0x28
main.main()
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/examples/demo/demo.go:45 +0xcf

2025/02/24 20:25:51 ----- END OF STACK TRACE -----
2025/02/24 20:25:51 SAVED CRASH LOG TO C:\Users\theuser\AppData\Roaming\Cogent\ Core\ Demo\crash-logs\crash_2025-02-24_20-25-51
2025/02/24 20:25:51 panic: runtime error: index out of range [0] with length 0
2025/02/24 20:25:51
2025/02/24 20:25:51 ----- START OF STACK TRACE: -----
2025/02/24 20:25:51 goroutine 1 [running, locked to thread]:
runtime/debug.Stack()
        C:/Program Files/Go/src/runtime/debug/stack.go:26 +0x5e
cogentcore.org/core/system.HandleRecoverBase({0x7ff6de9a5f80, 0xc006d580a8})
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/recover.go:50 +0x4b
cogentcore.org/core/core.handleRecover({0x7ff6de9a5f80, 0xc006d580a8})
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/recover.go:37 +0x52
cogentcore.org/core/core.(*Stage).run.func1()
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:333 +0x24
panic({0x7ff6de9a5f80?, 0xc006d580a8?})
        C:/Program Files/Go/src/runtime/panic.go:787 +0x132
cogentcore.org/core/gpu.(*Surface).InitConfig(0xc006d60308)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:143 +0x23f
cogentcore.org/core/gpu.(*Surface).init(0xc006d60308, 0x7ff6ddaf2e26?, 0x0?, {0x0?, 0xc013bdd73c?}, 0x1, 0x0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:83 +0x10b
cogentcore.org/core/gpu.NewSurface(0xc003726240, 0xc013bdd750, {0x120?, 0x2b0?}, 0x1, 0x0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:60 +0xb8
cogentcore.org/core/system/driver/desktop.(*App).NewWindow.func2()
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/desktop/app.go:132 +0x145
cogentcore.org/core/system/driver/base.(*App).RunOnMain(0x0?, 0x0?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/base/app.go:91 +0x9b
cogentcore.org/core/system/driver/desktop.(*App).NewWindow(0x7ff6df8c47c0, 0xc000096420?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/desktop/app.go:121 +0x405
cogentcore.org/core/core.newRenderWindow({0xc0134a6640, 0x37}, {0xc0134808a0, 0x25}, 0xc000096420)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/renderwindow.go:115 +0xa2
cogentcore.org/core/core.(*Stage).newRenderWindow(0xc0134de000)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:403 +0x2eb
cogentcore.org/core/core.(*Stage).runWindow(0xc0134de000)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:270 +0x685
cogentcore.org/core/core.(*Stage).run(0x1?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:336 +0x88
cogentcore.org/core/core.(*Stage).Run(0x7ff600000000?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:315 +0x7a
cogentcore.org/core/core.(*Body).RunWindow(0x0?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:87 +0x47
cogentcore.org/core/core.handleRecover({0x7ff6de9a5f80, 0xc006d58048})
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/recover.go:83 +0x457
cogentcore.org/core/core.(*Stage).run.func1()
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:333 +0x24
panic({0x7ff6de9a5f80?, 0xc006d58048?})
        C:/Program Files/Go/src/runtime/panic.go:787 +0x132
cogentcore.org/core/gpu.(*Surface).InitConfig(0xc006d60008)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:143 +0x23f
cogentcore.org/core/gpu.(*Surface).init(0xc006d60008, 0x1d?, 0x400000002?, {0xc0037262b8?, 0xc003726258?}, 0x1, 0x0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:83 +0x10b
cogentcore.org/core/gpu.NewSurface(0xc003726240, 0xc0103e3530, {0x120?, 0x2b0?}, 0x1, 0x0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/gpu/surface.go:60 +0xb8
cogentcore.org/core/system/driver/desktop.(*App).NewWindow.func2()
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/desktop/app.go:132 +0x145
cogentcore.org/core/system/driver/base.(*App).RunOnMain(0x0?, 0x0?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/base/app.go:91 +0x9b
cogentcore.org/core/system/driver/desktop.(*App).NewWindow(0x7ff6df8c47c0, 0xc0002facc0?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/system/driver/desktop/app.go:121 +0x405
cogentcore.org/core/core.newRenderWindow({0xc005fcaa20, 0x22}, {0x7ff6dea5935f, 0x10}, 0xc0002facc0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/renderwindow.go:115 +0xa2
cogentcore.org/core/core.(*Stage).newRenderWindow(0xc0068489c0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:403 +0x2eb
cogentcore.org/core/core.(*Stage).runWindow(0xc0068489c0)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:270 +0x685
cogentcore.org/core/core.(*Stage).run(0x4?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:336 +0x88
cogentcore.org/core/core.(*Stage).Run(0xc000000000?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/stage.go:315 +0x7a
cogentcore.org/core/core.(*Body).RunWindow(0xc006a0e808?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:87 +0x47
cogentcore.org/core/core.(*Body).RunMainWindow(0xc0001eea88?)
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/core/mainstage.go:47 +0x28
main.main()
        C:/Users/theuser/go/pkg/mod/cogentcore.org/[email protected]/examples/demo/demo.go:45 +0xcf

2025/02/24 20:25:51 ----- END OF STACK TRACE -----
2025/02/24 20:25:51 SAVED CRASH LOG TO C:\Users\theuser\AppData\Roaming\Cogent\ Core\ Demo\crash-logs\crash_2025-02-24_20-25-51
exit status 0xc000013a

dufguix avatar Feb 24 '25 19:02 dufguix

could you constantly reproduce the error above?

yes on my desktop. But on my laptop, no problemo.

do you use any rdp software?

no, I don't. Classic desktop machine with nvidia gpu.

what monitors are available and how they are connected to computing machine?

21:9 format. display port cable -> gpu

dufguix avatar Feb 24 '25 19:02 dufguix

can you try replacing @main with @2230780

doesn't work

dufguix avatar Feb 24 '25 19:02 dufguix

@dufguix Okay, thank you for that information. The stack trace confirms what I suspected. Can you try setting the env variable GPU_DEVICE=1 and then run again (on main branch)? If that works, then the GPU selection logic is the issue and we can fix it.

kkoreilly avatar Feb 24 '25 19:02 kkoreilly

Doesnt work.

powershell set env var with: $env:GPU_DEVICE="1"

then: go run cogentcore.org/core/examples/demo@main


does it make sense that go run github.com/cogentcore/webgpu/examples/triangle@main works ?

dufguix avatar Feb 24 '25 21:02 dufguix

@dufguix Hmm. Can you please try running webgpuinfo again with that env variable set? If the env variable is registering correctly, then it should say something different than previously for the Default WebGPU Adapter number... first line (it should say number 1 and type discrete-gpu). If you can try that and paste the output here, that would be helpful.

It does make some sense that the triangle example works, as that doesn't use our GPU selection logic, which I still suspect is the issue, although your update makes me less sure. Thank you for helping debug this.

kkoreilly avatar Feb 24 '25 23:02 kkoreilly

yes this is correct: Default WebGPU Adapter number: 1 Type: discrete-gpu Backend: d3d12

dufguix avatar Feb 25 '25 08:02 dufguix

some updates ! From the beginning, I use a single wide screen. But I have a second screen (turned off) with an HDMI switch (several computers on it). Once the hdmi switch unplugged from my nvidia gpu, it works with GPU_DEVICE=0.

Here webgpuinfo again:

Default WebGPU Adapter number: 0   Type: discrete-gpu   Backend: vulkan
Set the GPU_DEVICE environment variable to an adapter number to select a different GPU

#####################################################################
WebGPU Adapter number: 0   Type: discrete-gpu   Backend: vulkan
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 7817,
        "Name": "0x1e89",
        "DriverDescription": "NVIDIA GeForce RTX 2060",
        "AdapterType": 0,
        "BackendType": 6
}

{
        "Limits": {
                "MaxTextureDimension1D": 32768,
                "MaxTextureDimension2D": 32768,
                "MaxTextureDimension3D": 16384,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 1000,
                "MaxDynamicUniformBuffersPerPipelineLayout": 15,
                "MaxDynamicStorageBuffersPerPipelineLayout": 16,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 1048576,
                "MaxStorageBuffersPerShaderStage": 1048576,
                "MaxStorageTexturesPerShaderStage": 1048576,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 64,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 18446744073709551615,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 128,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 49152,
                "MaxComputeInvocationsPerWorkgroup": 1024,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2354119040
        }
}


#####################################################################
WebGPU Adapter number: 1   Type: discrete-gpu   Backend: d3d12
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 7817,
        "Name": "0x1e89",
        "DriverDescription": "NVIDIA GeForce RTX 2060",
        "AdapterType": 0,
        "BackendType": 4
}

{
        "Limits": {
                "MaxTextureDimension1D": 16384,
                "MaxTextureDimension2D": 16384,
                "MaxTextureDimension3D": 2048,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 8,
                "MaxDynamicStorageBuffersPerPipelineLayout": 4,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 2048,
                "MaxStorageBuffersPerShaderStage": 262144,
                "MaxStorageTexturesPerShaderStage": 262144,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 60,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 16384,
                "MaxComputeInvocationsPerWorkgroup": 768,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2354119040
        }
}


#####################################################################
WebGPU Adapter number: 2   Type: cpu   Backend: d3d12
{
        "VendorId": 5140,
        "VendorName": "0x1414",
        "Architecture": "",
        "DeviceId": 140,
        "Name": "0x8c",
        "DriverDescription": "Microsoft Basic Render Driver",
        "AdapterType": 2,
        "BackendType": 4
}

{
        "Limits": {
                "MaxTextureDimension1D": 16384,
                "MaxTextureDimension2D": 16384,
                "MaxTextureDimension3D": 2048,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 8,
                "MaxDynamicStorageBuffersPerPipelineLayout": 4,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 2048,
                "MaxStorageBuffersPerShaderStage": 262144,
                "MaxStorageTexturesPerShaderStage": 262144,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 60,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 16384,
                "MaxComputeInvocationsPerWorkgroup": 768,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2354119040
        }
}


#####################################################################
WebGPU Adapter number: 3   Type: unknown   Backend: open-gl
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 0,
        "Name": "0x0",
        "DriverDescription": "NVIDIA GeForce RTX 2060/PCIe/SSE2",
        "AdapterType": 3,
        "BackendType": 7
}

{
        "Limits": {
                "MaxTextureDimension1D": 32768,
                "MaxTextureDimension2D": 32768,
                "MaxTextureDimension3D": 16384,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 14,
                "MaxDynamicStorageBuffersPerPipelineLayout": 16,
                "MaxSampledTexturesPerShaderStage": 16,
                "MaxSamplersPerShaderStage": 16,
                "MaxStorageBuffersPerShaderStage": 16,
                "MaxStorageTexturesPerShaderStage": 8,
                "MaxUniformBuffersPerShaderStage": 14,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483647,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 16,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 124,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 49152,
                "MaxComputeInvocationsPerWorkgroup": 1024,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2354119040
        }
}

dufguix avatar Feb 25 '25 08:02 dufguix

correction: I re-plugged my second screen. It works... BUT I have to specify $env:GPU_DEVICE="0"

IMO you should look into the device selection function when env var is NOT specified.

dufguix avatar Feb 25 '25 08:02 dufguix

@dufguix Great! Yes, it is our plan to fix the default device selection logic, I just needed to know what the right device to select should be in cases like this. Given that everything works for you using GPU_DEVICE=0, which is the Vulkan discrete GPU backend, we will rewrite our logic accordingly. Thank you for your patience.

kkoreilly avatar Feb 25 '25 15:02 kkoreilly

I ran into this error also and simply setting GPU_DEVICE=0 was sufficient to fix for me.

EddieEldridge avatar Jun 01 '25 20:06 EddieEldridge

I had the same problem. The command $env:GPU_DEVICE="0" also helped.

puzzir avatar Oct 07 '25 15:10 puzzir

FWIIW, I was having a similar issue under Linux and doing GPU_DEVICE=0 solved it for me too.

brunoga avatar Oct 30 '25 12:10 brunoga

I'm getting this also in Windows, but no device set of my 5 options functions. regardless of what i set lets the demo launch.

2025/11/03 13:53:33 panic: runtime error: index out of range [0] with length 0 ... ... panic({0x7ff6bf41d1c0?, 0xc010d1ce40?}) C:/Program Files/Go/src/runtime/panic.go:783 +0x132 cogentcore.org/core/gpu.(*Surface).InitConfig(0xc002476008)

Looks to be defaulting to CPU. I do have multiple remote desktop softwares i use if that's related.

Default WebGPU Adapter number: 2   Type: cpu   Backend: d3d12
Set the GPU_DEVICE environment variable to an adapter number to select a different GPU

#####################################################################
WebGPU Adapter number: 0   Type: discrete-gpu   Backend: vulkan
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 9476,
        "Name": "0x2504",
        "DriverDescription": "NVIDIA GeForce RTX 3060",
        "AdapterType": 0,
        "BackendType": 6
}

{
        "Limits": {
                "MaxTextureDimension1D": 32768,
                "MaxTextureDimension2D": 32768,
                "MaxTextureDimension3D": 16384,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 1000,
                "MaxDynamicUniformBuffersPerPipelineLayout": 15,
                "MaxDynamicStorageBuffersPerPipelineLayout": 16,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 1048576,
                "MaxStorageBuffersPerShaderStage": 1048576,
                "MaxStorageTexturesPerShaderStage": 1048576,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 64,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 18446744073709551615,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 128,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 49152,
                "MaxComputeInvocationsPerWorkgroup": 1024,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2583378336
        }
}


#####################################################################
WebGPU Adapter number: 1   Type: discrete-gpu   Backend: d3d12
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 9476,
        "Name": "0x2504",
        "DriverDescription": "NVIDIA GeForce RTX 3060",
        "AdapterType": 0,
        "BackendType": 4
}

{
        "Limits": {
                "MaxTextureDimension1D": 16384,
                "MaxTextureDimension2D": 16384,
                "MaxTextureDimension3D": 2048,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 8,
                "MaxDynamicStorageBuffersPerPipelineLayout": 4,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 2048,
                "MaxStorageBuffersPerShaderStage": 262144,
                "MaxStorageTexturesPerShaderStage": 262144,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 60,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 16384,
                "MaxComputeInvocationsPerWorkgroup": 768,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2583378336
        }
}


#####################################################################
WebGPU Adapter number: 2   Type: cpu   Backend: d3d12
{
        "VendorId": 5140,
        "VendorName": "0x1414",
        "Architecture": "",
        "DeviceId": 140,
        "Name": "0x8c",
        "DriverDescription": "Microsoft Basic Render Driver",
        "AdapterType": 2,
        "BackendType": 4
}

{
        "Limits": {
                "MaxTextureDimension1D": 16384,
                "MaxTextureDimension2D": 16384,
                "MaxTextureDimension3D": 2048,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 8,
                "MaxDynamicStorageBuffersPerPipelineLayout": 4,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 2048,
                "MaxStorageBuffersPerShaderStage": 262144,
                "MaxStorageTexturesPerShaderStage": 262144,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 60,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 16384,
                "MaxComputeInvocationsPerWorkgroup": 768,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2583378336
        }
}


#####################################################################
WebGPU Adapter number: 3   Type: discrete-gpu   Backend: d3d12
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 9476,
        "Name": "0x2504",
        "DriverDescription": "NVIDIA GeForce RTX 3060",
        "AdapterType": 0,
        "BackendType": 4
}

{
        "Limits": {
                "MaxTextureDimension1D": 16384,
                "MaxTextureDimension2D": 16384,
                "MaxTextureDimension3D": 2048,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 8,
                "MaxDynamicStorageBuffersPerPipelineLayout": 4,
                "MaxSampledTexturesPerShaderStage": 1048576,
                "MaxSamplersPerShaderStage": 2048,
                "MaxStorageBuffersPerShaderStage": 262144,
                "MaxStorageTexturesPerShaderStage": 262144,
                "MaxUniformBuffersPerShaderStage": 1048576,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483648,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 32,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 60,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 16384,
                "MaxComputeInvocationsPerWorkgroup": 768,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2583378336
        }
}


#####################################################################
WebGPU Adapter number: 4   Type: unknown   Backend: open-gl
{
        "VendorId": 4318,
        "VendorName": "0x10de",
        "Architecture": "",
        "DeviceId": 0,
        "Name": "0x0",
        "DriverDescription": "NVIDIA GeForce RTX 3060/PCIe/SSE2",
        "AdapterType": 3,
        "BackendType": 7
}

{
        "Limits": {
                "MaxTextureDimension1D": 32768,
                "MaxTextureDimension2D": 32768,
                "MaxTextureDimension3D": 16384,
                "MaxTextureArrayLayers": 2048,
                "MaxBindGroups": 8,
                "MaxBindingsPerBindGroup": 65535,
                "MaxDynamicUniformBuffersPerPipelineLayout": 14,
                "MaxDynamicStorageBuffersPerPipelineLayout": 16,
                "MaxSampledTexturesPerShaderStage": 16,
                "MaxSamplersPerShaderStage": 16,
                "MaxStorageBuffersPerShaderStage": 16,
                "MaxStorageTexturesPerShaderStage": 8,
                "MaxUniformBuffersPerShaderStage": 14,
                "MaxUniformBufferBindingSize": 65536,
                "MaxStorageBufferBindingSize": 2147483647,
                "MinUniformBufferOffsetAlignment": 256,
                "MinStorageBufferOffsetAlignment": 32,
                "MaxVertexBuffers": 16,
                "MaxBufferSize": 2147483647,
                "MaxVertexAttributes": 16,
                "MaxVertexBufferArrayStride": 2048,
                "MaxInterStageShaderComponents": 124,
                "MaxInterStageShaderVariables": 0,
                "MaxColorAttachments": 0,
                "MaxColorAttachmentBytesPerSample": 0,
                "MaxComputeWorkgroupStorageSize": 49152,
                "MaxComputeInvocationsPerWorkgroup": 1024,
                "MaxComputeWorkgroupSizeX": 1024,
                "MaxComputeWorkgroupSizeY": 1024,
                "MaxComputeWorkgroupSizeZ": 64,
                "MaxComputeWorkgroupsPerDimension": 65535,
                "MaxPushConstantSize": 2583378336
        }
}

Main screen is via display port, second is via HDMI.

VerveLight avatar Nov 03 '25 00:11 VerveLight