b***@freedesktop.org
2018-08-08 16:14:13 UTC
https://bugs.freedesktop.org/show_bug.cgi?id=107524
Bug ID: 107524
Summary: Broken packDouble2x32 at llvmpipe
Product: Mesa
Version: git
Hardware: All
OS: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: Drivers/Gallium/llvmpipe
Assignee: mesa-***@lists.freedesktop.org
Reporter: ***@gmail.com
QA Contact: mesa-***@lists.freedesktop.org
I've tested Mesa llvmpipe from recent master (e02f061b690d) and found the
following behavior.
The following fragment shader works as expected on Intel GPU (Intel HD Graphics
620 (Kaby Lake GT2)) and shows black screen at llvmpipe.
#version 330
#extension GL_ARB_gpu_shader_fp64 : require
in vec2 UV;
out vec4 color;
uniform usampler2D image_texture;
uniform sampler1D colormap;
uniform float c;
uniform float z;
void main() {
double raw_value = packDouble2x32(texture(image_texture,
UV).gr);
double value = c * (raw_value - z);
color = texture(colormap, float(clamp(value, 0.0, 1.0)));
}
At the same time, the following tiny modification fixes the shader at llvmpipe:
#version 330
#extension GL_ARB_gpu_shader_fp64 : require
in vec2 UV;
out vec4 color;
uniform usampler2D image_texture;
uniform sampler1D colormap;
uniform float c;
uniform float z;
void main() {
double raw_value = packDouble2x32(uvec2(texture(image_texture,
UV).g, texture(image_texture, UV).r));
double value = c * (raw_value - z);
color = texture(colormap, float(clamp(value, 0.0, 1.0)));
}
I've compared TGSI output from both of them and found the following difference:
In broken case DADD tries to operate on .yxyx
5: DADD TEMP[1].xy, TEMP[1].yxyx, TEMP[2].xyxy
I am not sure that DADD knows what to do with swapped yx.
Bug ID: 107524
Summary: Broken packDouble2x32 at llvmpipe
Product: Mesa
Version: git
Hardware: All
OS: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: Drivers/Gallium/llvmpipe
Assignee: mesa-***@lists.freedesktop.org
Reporter: ***@gmail.com
QA Contact: mesa-***@lists.freedesktop.org
I've tested Mesa llvmpipe from recent master (e02f061b690d) and found the
following behavior.
The following fragment shader works as expected on Intel GPU (Intel HD Graphics
620 (Kaby Lake GT2)) and shows black screen at llvmpipe.
#version 330
#extension GL_ARB_gpu_shader_fp64 : require
in vec2 UV;
out vec4 color;
uniform usampler2D image_texture;
uniform sampler1D colormap;
uniform float c;
uniform float z;
void main() {
double raw_value = packDouble2x32(texture(image_texture,
UV).gr);
double value = c * (raw_value - z);
color = texture(colormap, float(clamp(value, 0.0, 1.0)));
}
At the same time, the following tiny modification fixes the shader at llvmpipe:
#version 330
#extension GL_ARB_gpu_shader_fp64 : require
in vec2 UV;
out vec4 color;
uniform usampler2D image_texture;
uniform sampler1D colormap;
uniform float c;
uniform float z;
void main() {
double raw_value = packDouble2x32(uvec2(texture(image_texture,
UV).g, texture(image_texture, UV).r));
double value = c * (raw_value - z);
color = texture(colormap, float(clamp(value, 0.0, 1.0)));
}
I've compared TGSI output from both of them and found the following difference:
In broken case DADD tries to operate on .yxyx
5: DADD TEMP[1].xy, TEMP[1].yxyx, TEMP[2].xyxy
I am not sure that DADD knows what to do with swapped yx.
--
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.