Possible Driver Bug - Uniform Initialization Failure

  1. Operating system version.
    Windows 10 Home.

  2. Graphics hardware.
    GeForce GTX 1070

  3. Graphics driver version.
    GeForce Game Ready Driver 399.24 from September 10th, 2018

  4. Display Control Panel settings for screen resolution, monitor configs, and driver settings.

System name: DESKTOP-HP00OJ5

Operating System: Windows 10 Home, 64-bit
DirectX version: 12.0
GPU processor: GeForce GTX 1070
Driver version: 399.24
Direct3D API version: 12
Direct3D feature level: 12_1
CUDA Cores: 2048
Core clock: 1442 MHz
Memory data rate: 8008 MHz
Memory interface: 256-bit
Memory bandwidth: 256.26 GB/s
Total available graphics memory: 14312 MB
Dedicated video memory: 8192 MB GDDR5
System video memory: 0 MB
Shared system memory: 6120 MB
Video BIOS version: 86.04.5B.00.55
IRQ: Not used
Bus: PCI Express x16 Gen3
Device Id: 10DE 1BE1 16601043
Part Number: 2914 0010


nvui.dll NVIDIA User Experience Driver Component
nvxdplcy.dll NVIDIA User Experience Driver Component
nvxdbat.dll NVIDIA User Experience Driver Component
nvxdapix.dll NVIDIA User Experience Driver Component
NVCPL.DLL NVIDIA User Experience Driver Component
nvCplUIR.dll 8.1.940.0 NVIDIA Control Panel
nvCplUI.exe 8.1.940.0 NVIDIA Control Panel
nvWSSR.dll NVIDIA Workstation Server
nvWSS.dll NVIDIA Workstation Server
nvViTvSR.dll NVIDIA Video Server
nvViTvS.dll NVIDIA Video Server
NVSTVIEW.EXE NVIDIA 3D Vision Photo Viewer
NVSTTEST.EXE NVIDIA 3D Vision Test Application
nvDispSR.dll NVIDIA Display Server
NVMCTRAY.DLL NVIDIA Media Center Library
nvDispS.dll NVIDIA Display Server
PhysX 09.17.0524 NVIDIA PhysX
nvGameSR.dll NVIDIA 3D Settings Server
nvGameS.dll NVIDIA 3D Settings Server

  1. Reproducer project.
    I’m working on an Win32 desktop application that uses OpenGL features for accelerated compute.

*** I can definitely make a download available, but I don’t have a simple executable that shows the problem. ***
*** You can find the problem using glsllangvalidator.exe ***

5.1. Source code in failing state highly appreciated. This is the code that fails:

#version 450

out vec4 fragColor;
uniform float s[2][2] = s[2][2]( float[2]( 0.2, 0.4 ), float[2]( 0.6, 0.8 ) );
// C-style initialization works just fine!
// uniform float s[2][2] = { { 0.2, 0.4 }, { 0.6, 0.8 } };

void main(void)
fragColor = vec4( s[0][0], s[0][1], s[1][0], s[1][1] ); // Only get black on screen.
// According to the GLSL language documentation, I think this should work.
// Equivalent results, rendering all fragments with darkish blue are:
// fragColor = vec4( 0.2, 0.4, 0.6, 0.8 );

5.3. This is the error I receive:

All on-screen fragments are black.

  1. Description of single steps to reproduce the problem.

    Compile and execute this shader on any geometry.

  2. Description of the expected result (screenshots if possible).

The shader renders all fragments as dark blue when compiled;