JernejL
06-06-2008, 08:42 PM
THIS is why i hate developing for ati's drivers, consider this code for detecting weither or not their opengl implementation supports dxt compression, and enumerating compressed formats that it supports:
candxt := findbuffer('GL_EXT_texture_compression_s3tc');
if candxt = False then
candxt := findbuffer('GL_S3_s3tc');
if candxt = True then
begin
debug('EXT: Enumerating texture compression:');
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS_AR B, @num);
SetLength(valid_arb_compression, num);
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS_ARB, @valid_arb_compression[0]);
for i := 0 to num - 1 do
debug(format('$%x', [valid_arb_compression[i]]));
end;
It worked fine for last 5 years or so, and THIS is how the code looks now after their latest driver "update":
candxt := findbuffer('GL_EXT_texture_compression_s3tc');
if candxt = False then
candxt := findbuffer('GL_S3_s3tc');
if candxt = True then
begin
debug('EXT: Enumerating texture compression:');
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS_AR B, @num);
SetLength(valid_arb_compression, num);
if num = 0 then // can use dxt but supports zero compressed formats... ati / amd screwed up their drivers again..
begin
debug('AMD CRAPPY BROKEN DRIVERS.');
end else
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS_ARB, @valid_arb_compression[0]);
for i := 0 to num - 1 do
debug(format('$%x', [valid_arb_compression[i]]));
end;
They keep breaking their opengl implementation and are getting pretty good at it, good job AMD, i'm guaranteeing you my next gpu won't come from your fabrics for a looong time and i will actively tell people not to buy your crappy products.
candxt := findbuffer('GL_EXT_texture_compression_s3tc');
if candxt = False then
candxt := findbuffer('GL_S3_s3tc');
if candxt = True then
begin
debug('EXT: Enumerating texture compression:');
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS_AR B, @num);
SetLength(valid_arb_compression, num);
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS_ARB, @valid_arb_compression[0]);
for i := 0 to num - 1 do
debug(format('$%x', [valid_arb_compression[i]]));
end;
It worked fine for last 5 years or so, and THIS is how the code looks now after their latest driver "update":
candxt := findbuffer('GL_EXT_texture_compression_s3tc');
if candxt = False then
candxt := findbuffer('GL_S3_s3tc');
if candxt = True then
begin
debug('EXT: Enumerating texture compression:');
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS_AR B, @num);
SetLength(valid_arb_compression, num);
if num = 0 then // can use dxt but supports zero compressed formats... ati / amd screwed up their drivers again..
begin
debug('AMD CRAPPY BROKEN DRIVERS.');
end else
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS_ARB, @valid_arb_compression[0]);
for i := 0 to num - 1 do
debug(format('$%x', [valid_arb_compression[i]]));
end;
They keep breaking their opengl implementation and are getting pretty good at it, good job AMD, i'm guaranteeing you my next gpu won't come from your fabrics for a looong time and i will actively tell people not to buy your crappy products.