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

Brian Paul brianp at vmware.com
Tue Aug 7 14:29:29 UTC 2018


On 08/07/2018 03:16 AM, Matwey V. Kornilov wrote:
> 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?
> 

Maybe try setting ST_DEBUG=tgsi and run both versions and compare the 
TGSI code printed to your terminal.  Any difference would be a clue.

-Brian



More information about the mesa-users mailing list