devdept
06-01-2009, 02:19 AM
Hi All,
We have a texture blurring code that runs very slow only on this hardware:
Graphics card: RADEON X300/X550 Series (128 MB)
Graphics card: RADEON X300/X550 Series Secondary (128 MB)
Chiptype: RADEON X300/X550 Series (0x5B60)
3D accelerator ATI Radeon X300 (RV370)
Installed driver: ati2dvag (6.14.10.6575)
RAMDAC frequency: 400 MHz
Pixel pipelines 4
TMU per pipeline 1
Vertex shaders 2 (v2.0)
Pixel shaders 1 (v2.0)
DirectX support, hardware DirectX v9.0
Pixel Fillrate 1296 MPixel/s
Texel Fillrate 1296 MTexel/s
ATI GPU Registers:
ati-00F8 08000000
ati-0140 00000070
ati-0144 1A289111
ati-0148 D7FFD000
ati-0154 F0000000
ati-0158 31320032
ati-0178 00001017
ati-01C0 01FF0000
ati-4018 00010011
ati-CLKIND-0A 03301D04
ati-CLKIND-0B 00001A00
ati-CLKIND-0C 0400BC00
ati-CLKIND-0D 00807FFA
ati-CLKIND-0E 04002400
ati-CLKIND-0F 00000000
ati-CLKIND-12 00031212
ati-MCIND-6C 00000000
Chipset: Intel Grantsdale-G i915G
GPU code: RV370 (PCI Express x16 1002 / 5B60, Rev 00)
GPU speed: 324 MHz (orginal: 324 MHz)
CPU type Intel Pentium 4 520, 2800 MHz (14 x 200)
Supported: x86, MMX, SSE, SSE2, SSE3
OpenGL Extensions Viewer 3.0 says:
Renderer: ATI Radeon X300/X550/X1050 Series
Vendor: ATI Technologies Inc.
Memory: 128 MB
Version: 2.1.8543 Release
Shading language version: 1.20
To me all the info tell that this machine can fully support a shader program, while the real machine make us think that we need to disable shader support on it.
Why? The shader code follows below.
Thanks,
Alberto
// size of kernel for this execution
const int KernelSize = %len%;
// array of offsets for accessing the base image
uniform float Offset[KernelSize];
// value for each location in the convolution kernel
uniform float KernelValue[KernelSize];
// image to be convolved
uniform sampler2D BaseImage;
void main()
{
int i;
vec4 sum = vec4(0.0);
for (i = 0; i < KernelSize; i++)
{
vec4 tmp = texture2D(BaseImage, gl_TexCoord[0].st + vec2(Offset[i], 0));
sum += tmp * KernelValue[i];
}
gl_FragColor = sum;
}
We have a texture blurring code that runs very slow only on this hardware:
Graphics card: RADEON X300/X550 Series (128 MB)
Graphics card: RADEON X300/X550 Series Secondary (128 MB)
Chiptype: RADEON X300/X550 Series (0x5B60)
3D accelerator ATI Radeon X300 (RV370)
Installed driver: ati2dvag (6.14.10.6575)
RAMDAC frequency: 400 MHz
Pixel pipelines 4
TMU per pipeline 1
Vertex shaders 2 (v2.0)
Pixel shaders 1 (v2.0)
DirectX support, hardware DirectX v9.0
Pixel Fillrate 1296 MPixel/s
Texel Fillrate 1296 MTexel/s
ATI GPU Registers:
ati-00F8 08000000
ati-0140 00000070
ati-0144 1A289111
ati-0148 D7FFD000
ati-0154 F0000000
ati-0158 31320032
ati-0178 00001017
ati-01C0 01FF0000
ati-4018 00010011
ati-CLKIND-0A 03301D04
ati-CLKIND-0B 00001A00
ati-CLKIND-0C 0400BC00
ati-CLKIND-0D 00807FFA
ati-CLKIND-0E 04002400
ati-CLKIND-0F 00000000
ati-CLKIND-12 00031212
ati-MCIND-6C 00000000
Chipset: Intel Grantsdale-G i915G
GPU code: RV370 (PCI Express x16 1002 / 5B60, Rev 00)
GPU speed: 324 MHz (orginal: 324 MHz)
CPU type Intel Pentium 4 520, 2800 MHz (14 x 200)
Supported: x86, MMX, SSE, SSE2, SSE3
OpenGL Extensions Viewer 3.0 says:
Renderer: ATI Radeon X300/X550/X1050 Series
Vendor: ATI Technologies Inc.
Memory: 128 MB
Version: 2.1.8543 Release
Shading language version: 1.20
To me all the info tell that this machine can fully support a shader program, while the real machine make us think that we need to disable shader support on it.
Why? The shader code follows below.
Thanks,
Alberto
// size of kernel for this execution
const int KernelSize = %len%;
// array of offsets for accessing the base image
uniform float Offset[KernelSize];
// value for each location in the convolution kernel
uniform float KernelValue[KernelSize];
// image to be convolved
uniform sampler2D BaseImage;
void main()
{
int i;
vec4 sum = vec4(0.0);
for (i = 0; i < KernelSize; i++)
{
vec4 tmp = texture2D(BaseImage, gl_TexCoord[0].st + vec2(Offset[i], 0));
sum += tmp * KernelValue[i];
}
gl_FragColor = sum;
}