Bug 15217

Summary: [i965 glsl] Unsupported shader opcode 46 in mesa/progs/glsl/noise.c
Product: Mesa Reporter: Joel <k00_fol>
Component: Drivers/DRI/i965Assignee: Ian Romanick <idr>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: medium CC: jiewen.lin
Version: unspecified   
Hardware: Other   
OS: All   
i915 platform: i915 features:

Description Joel 2008-03-26 16:06:40 UTC
System Environment:
Platform: G35
Arch: x86_64
Xf86_video_intel:   69fbc17441d0f894d17b058e65ae22300cd2a54c             
Drm:                     1021799b6ca6b195ad2d5f002e45668f69c44651     
Mesa:                    05004670448e1edd9166b8da614606e6f49c1fcf   

Bug detailed description:
When running mesa/progs/glsl/noise the following is output at the console

   Shader compiled OK
   Shader compiled OK
   Link success!
   Uniform Scale location: 4
   Uniform Bias location: 5
   Uniform Slice location: 6
   GL_RENDERER = Mesa DRI Intel(R) 965G 20061102
   unsupport opcode 46 in fragment program
   unsupport opcode 46 in fragment program
   unsupport opcode 46 in fragment program
   unsupport opcode 46 in fragment program                                         

...and the visual result appear to lack texture

Reproduce step:
Just run mesa/progs/glsl/noise

Additional comments
The offending opcode is generated from the FragShader program, line 32 of noise.c, namely:

 "   vec4 n = noise4(p * scale);\n"

Also, much similar to:
(Bug 13838) [GLSL] glean/glsl1 fail: texture sampling (opcode 74)
Comment 1 Gordon Jin 2008-12-10 05:14:27 UTC
*** Bug 18993 has been marked as a duplicate of this bug. ***
Comment 2 Eric Anholt 2009-01-07 20:50:43 UTC
commit d28e8528958b472c821e3b72a28c22f337aba66e
Author: Gary Wong <gtw@gnu.org>
Date:   Sat Dec 13 14:15:33 2008 -0700

    i965: Finish OPCODE_NOISEn instructions.
    Added missing OPCODE_NOISE4, and use BRW_REGISTER_TYPE_D (instead of _UD)
    in the initial RNDD instructions (which avoids saturating negative inputs
    to 0).

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.