Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Bug] 2.6.4: sampler array element still unresolved when the index is not constant

Aperta
#449 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

Start by reading sampler_array.rs and the changes for #426 to understand how constant sampler array indices are lowered. Then trace how a dynamic index inside a two-light loop is represented and check whether it produces a LocalPointerFieldLoad fact; the report has no shader dump or named test, so reproducing the failure may require obtaining a module from the reporter. Done means the reported shadowed material compiles without the Metal sampler error or WebGL context loss.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug
Send logs report ID

Nothing that app can log

Where does it go wrong?

An app or game

What happens

Follow-up to #426. The sampler array itself is now accepted, but this shader still
loses its WebGL context one step later.

Setup

  • NullMoth 2.6.4 (com.nullmoth.NVRM (2.6.4))
  • macOS 26.7.2 (25G332)
  • NVIDIA GeForce RTX 5050 Laptop GPU (10de:2d98), 8 GB
  • Brave 156.1.98.60 (Chromium 156.0.8078.48, ANGLE Metal), WebGL2

App
"Car Soccer", a three.js game served locally. It renders fine on 2.6.4 with
shadowMap.enabled = false; with shadows enabled the context is lost while
compiling the first shadowed material.

Error
GL error: HIGH: Error: 0x00000502, in ../../third_party/angle/src/libANGLE/renderer/metal/mtl_utils.mm, CreateMslShader:1620. Internal error. Metal error: sampler operand is a pointer whose exact sampler state was not recovered; retry with helpers inlined and object fields forwarded: sampler operand is a pointer whose exact sampler state was not recovered; as ordinary samplers: sampler operand is a pointer whose exact sampler state was not recovered then

GL_INVALID_OPERATION: Error: 0x00000502, ... CreateMslShader:1620. ... GL_CONTEXT_LOST_KHR: glCreateProgram: Context has been lost.

2 CreateMslShader failures and 28 GL_CONTEXT_LOST lines per page load.
Materials reported by three.js: Basalt, Concrete / field side,
Inner fascia / field side — MeshStandardMaterial, lit, shadowed.

On 2.6.3 the same shader failed earlier, with
entry parameter 15 is an array of 2 samplers, which this translator has no descriptor-array lowering for; ..., so 2.6.4 does bind the array.

Unverified guess
sampler_array.rs says only a constant element index is lowered. This shader
indexes the array inside a two-light loop, so the element load may not produce a
LocalPointerFieldLoad fact and the placeholder survives. If so, this is the
dynamic-index case rather than the constant-index case fixed in #426.

Dump attempts
METAL2VULKAN_REPRO_DIR=<dir> and METAL2VULKAN_RETRY_DEBUG=1 exported before
launching the browser produced no repro bundle (the directory stayed empty), so I
cannot attach the failing module.

Happy to test a build or run with any dump variable you suggest.

Written by you
  • I wrote this report myself. AI-written issues are closed without review (see CONTRIBUTING.md).
App or game (if it is one)

Any chromium browser

Did you change anything yourself?

No response

Lingua principale
Rust
Stelle
2.5k
Fork
233
Merge medio
3g 14h
PR unite (30g)
14

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nullmoth/nvidia-macos-driver

Tutte le issue di nullmoth/nvidia-macos-driver

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.