[Mesa-users] Mesa: llvmpipe: issues with using packDouble2x32

Matwey V. Kornilov matwey.kornilov at gmail.com
Tue Aug 7 09:16:06 UTC 2018


Hi all,

I am running Mesa-18.0.2 with Intel HD Graphics 620 (Kaby Lake GT2) on
Linux 4.12.14. I am trying to use GLSL packDouble2x32() function from
GL_ARB_gpu_shader_fp64 extension in my application.

The following fragment shader works as expected:

  #version 330
  #extension GL_ARB_gpu_shader_fp64 : require
  in vec2 UV;
  out vec4 color;
  uniform usampler2D image_texture;

  void main() {
      double value = packDouble2x32(texture(image_texture, UV).gr);
      color = vec4(float(value), 0.0, 0.0, 1.0);
  }

`image_texture` parameters are the following. Texture type is
GL_UNSIGNED_INT, pixel format is GL_RG_INTEGER and texture format is
GL_RG32UI.

However, when I force usage of llvmpipe with the same Mesa installation:

  OpenGL vendor string: VMware, Inc.
  OpenGL renderer string: llvmpipe (LLVM 5.0, 256 bits)

The same shader compiles successfully, but renders empty black screen.
I am not sure that this is how it should to be.

It is interesting that the following shader modification works fine on llvmpipe:

  #version 330
  #extension GL_ARB_gpu_shader_fp64 : require
  in vec2 UV;
  out vec4 color;
  uniform usampler2D image_texture;

  void main() {
      double value = packDouble2x32(uvec2(texture(image_texture,
UV).g, texture(image_texture, UV).r));
      color = vec4(float(value), 0.0, 0.0, 1.0);
  }

The question is how could I debug further what is going wrong here?

-- 
With best regards,
Matwey V. Kornilov


More information about the mesa-users mailing list