Skip to content

Naga const validation failures (bin op) #9274

@ecoricemon

Description

@ecoricemon

Description
Naga const evaluator does not correctly handle binary comparisons, divisions by zero, and short circuiting.

Examples

  1. Binary comparisons
const lhs = false;
const rhs = false;
const foo = lhs > rhs; // Expected validation error

Relevant CTS: webgpu:shader,validation,expression,binary,comparison:*

I'll fix this soon

  1. Divisions by zero
fn f() {
  var v = 1;
  v /= 0; // Expected validation error
}

Relevant CTS: webgpu:shader,validation,expression,binary,div_rem:*

  1. Short circuiting
const lhs = false;
const rhs = vec2(false, false);
const foo = lhs && rhs; // Expected validation error

Relevant CTS: webgpu:shader,validation,expression,binary,short_circuiting_and_or:*

  1. And, Or operations on bool (not short-circuiting)
const lhs = false;
const rhs = false;
const foo : bool = lhs | rhs; // Unexpected validation error

Relevant CTS: webgpu:shader,validation,expression,binary,and_or_xor:*

I'll fix this soon

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions