Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#449 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
Rust
Estrellas
2.5k
Forks
233
Merge medio
3 d 14 h
PR fusionados (30 d)
14

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nullmoth/nvidia-macos-driver

Todos los issues de nullmoth/nvidia-macos-driver

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.