Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

Anyone else having problems with 5970 and Catalyst 10.4/10.5?

Starting from 10.4 my application cannot work at all with 5970 while with 10.2 everything was fine. It looks like second core of 5970 doesn't works properly, it either not working at all or producing incorrect results. I'm using two separate threads for each of the core, each thread using pinned memory and they working totally asynchronously. I have some feelings that pinned memory is a reason but not sure.

16 Replies
Journeyman III

In my experience, the second core of 5970 works properly only on linux. I can't disable the crossfire on win7 64bit


I bet it's relayted to:


my post on this topic as it sees more than 1 GPU. o and last functional driver is v10.3b (also damn stable beta).


Well, it's quite annoying to throw away $800.

Also constant changes in bad way totally not cheering me up. I was rolled back to 10.2 just because 10.3 doesn't works with 4XXX+5XXX mix (I have two systems, one with 4770+5770+GT8600 and other with 5970). Then 10.4 fails to work with 5970, and now 10.5 not working with 5970 and no longer accepts installed NVIDIA GPU, just crashing if it presents.
So for me it's just total regression with each driver release.

And I'm kinda have feelings that these problems won't be fixed before 6XXX release and with 6XXX appear, situation will be exactly the same as it happens with 4XXX -- support for older (5XXX) GPUs will be just phased out.


Well, if we look at release notes from 10.3 -> 10.5 seems more like AMD have vacation going on, considering NVIDIA crushing atm on new 257.

I still suggest trying 10.3b or renaming the 'aticaldd.dll' on '%windir%\syswow64' to 'aticaldd32.dll'. (if on x64 system)

^ doing that will let you run all GPU utilities again and OpenCL tools however you can say goodbye to ATI GPU(s) (it won't affect running as x64 system doesn't lock nor use the file in general. Even while this is one of the registry 'PnPLockDown' files.)

basically, if I understand any of the driver files. They changed driver styles at 10.2 and 10.4. I fail to understand why was someone too stupid to overwrite a file in a system or something or did ATI/AMD want to verify that new driver was in clean base for less users bitching. Either way the call from 'aticaldd.dll' > 'aticfx32.dll' > driver.. most be some way broken.



Well, it's not a problem for me to make it work. However it isn't the case for commercial application where I need to guide (totally unprepared) user how to make software work. "Please replace couple of DLLs at system path" sounds way too weird . I payed $800 for 5970, user payed same amount + $$ for software and now he must manually tune DLLs from different drivers packs? May be for ATI it sounds like usual thing but for me it isn't for sure.


Well, I don't know what devels there do. I did feedback on this issue 3 times after 6th driver was bad (again) and haven't seen even a hint on release notes of 10.5 WHQL that it would be even an open subject.

as what goes to 'guide someone', yeah, that's pain, hehe. but no worries it doesn't work for programmers either as ATI stream after 10.4 is completely unable to see the device 'cypress' in this case on query. Plus all the GPU releated applications stops working too with setup with NVIDIA in box also.

Funny matter ATI drivers, atm, they had hell alot more time to develop drivers since NVIDIA released months later the DX11 supported cards(generally new GPUs). Yet, here we are with 10 times more issues in ATI card (when does the Video section in catalyst work, when 3D settings are not applying AA's, OpenCL developing broken by game tweaking temporal fixes to drivers and so on) than NVIDIA side where you play a video their encoder/decoder works almost perfect in all resolutions where answer from 'ATI' on forum would be 'we only support 1080p or 1200p' what ever nvcuda works & drivers has absolute no issues on AA what so ever as they are updated so regularly before even noticing an error there's fixed beta on guru3d or something.




Yep ATI just don't care... This will turn out to be like in game industry - develop on NVIDIA hardware, and when (if) ATI catch up, try to make it just run on their hardware.


Here is a build I made for myself. It's really damn custom, but works flawless on games, crossfire and ATI Stream with absolute latest Stream components.

Guru3D Forums > My Post

I don't know, if it beats renaming DLLs, but at least it's simply normal Catalyst installation with ATI Stream included.

Driver is v10.3 beta (preview driver), but it has a bit newer everything else


So I tested Catalyst 10.6 today... just to see that calResCreate1D() not working anymore. So can't say what's up with 2nd core of 5970 and 10.6. But looking at driver notes I assume that this "not working" is totally "OK" as it suggests to use 10.5 with OpenCL instead.

In other words, support for 5970 (and, by the way, other GPUs too if you're using pinned memory) broken for 3 months now and nobody at ATI really cares about it. Awesome.


Our drivers have a 3 month release cycle, so 10.6 was finalized ~2 months ago, around the time when the bug was discovered. It isn't that we don't care, it's that it takes awhile for fixes to make it to public. More information on the catalyst recycle process can be found here:

Micah, with "there is three weeks of validation, three weeks of beta testing, and then one week to bake" I have no idea how it's possible to miss this bug with 5970 -- any multi-GPU test reveals that 2nd core not working at all.

Anyway, as 10.6 implemented broken calResCreate1D() and this 3 months cycle shall I expect that it'll be fixed only around Catalyst 10.9? And thus with broken 10.3 (support for 4XXX+5XXX configs) and broken 10.4 & 10.5 (5970 support) I'll be forced to recommend half year old 10.2 to our customers.

Honestly, I'll prefer to have beta drivers released weekly than to wait another 3 months... and discover that other thing got broken in process of fixing other bug (which is indeed happens now). Clearly, ATI's QA isn't working good. May be for 3D games Catalyst getting better with each release but for GPGPU it's going from bad to worse. You're really should rethink validation process, if QA can't make GPGPU tests by their own -- involve community, publish pre-release beta drivers to catch these things before it's getting too late.


We are working on improving our QA process and these issues should be improved once we integrate OpenCL into the catalyst driver. I'm investigating the issue with calResCreate1D as this is new to me. If you have a test case, I can verify it on an internal build and let you know if it will be fixed in the next release, 10.7, or not.

If there is code that you don't want posted on the forum, you can send it to our streamdeveloper email.

Actually I'm not using OpenCL, only CAL/IL. And CAL runtime already integrated into Catalyst. Anyway, test case is absolutely trivial as it was for 2nd core of 5970 (and that's why I have strong feelings that GPGPU wasn't tested at all by ATI's QA), attached to this post.

There no problem with Catalyst 10.5/5770 and there is error at calResCreate1D with 10.6/5970 (and real program contains this code also fails with 10.6/5870, I'm just lazy/see-no-point to install 10.6 at my working system with 5770/4770).


#include <windows.h> // only for UINT_PTR/DWORD #include <stdio.h> #include <stdlib.h> #include <cal.h> #include <cal_ext.h> PFNCALRESCREATE1D calResCreate1D; int main(void) { int xerror = 0; int deviceno = 0; CALcontext calCtx; CALdevice calDevice; CALdeviceinfo calInfo; CALresource calConstRes; DWORD *pcalCR; DWORD *pcalConst; if (calInit() != CAL_RESULT_OK) { printf("calInit() failed\n"); return 1; } if (calExtGetProc((CALextproc*)&calResCreate1D, CAL_EXT_RES_CREATE, "calResCreate1D") != CAL_RESULT_OK) { printf("No calResCreate1D()\n"); return 2; } CALuint numDevices = 0; if (calDeviceGetCount(&numDevices) != CAL_RESULT_OK) { xerror = 1; goto error_x; } if (deviceno < 0 || deviceno > (int)numDevices) { xerror = 2; goto error_x; } if (calDeviceOpen(&calDevice, deviceno) != CAL_RESULT_OK) { xerror = 3; goto error_x; } if (calDeviceGetInfo(&calInfo, deviceno) != CAL_RESULT_OK) { xerror = 4; goto error_x; } if (calCtxCreate(&calCtx, calDevice) != CAL_RESULT_OK) { xerror = 5; goto error_x; } pcalCR = (DWORD *)malloc(1024 * 4 * 4 + 4096); // alloc pcalConst = (DWORD *)( (((UINT_PTR)pcalCR) + 4095) & (~4095) ); // align by page int calresult; calresult = calResCreate1D(&calConstRes, calDevice, pcalConst, 1024, CAL_FORMAT_UINT_4, 1024 * 4 * 4, 0); if (calresult != CAL_RESULT_OK) { xerror = 37; goto error_x; } error_x: if (xerror == 0) printf("Everything OK.\n"); else printf("Error = %d\n", xerror); return 0; }


ATI: please note, there are two diffrent (unresolved) problems.

the first one started with cat v10.4 (on cal) on which the 2nd gpu is not working as it should. i have exactly the same problem in my app with the hd5970 and also all the users of my app with an hd5970. they are complaining and all i can tell them is to limit the usage to only the first gpu and wait for new ati drivers. there is also no known workaround. needless to say that this is very frustrating. for me, gpgpu was the only reason to buy ATI.

the second one started with cat v10.6 in which calResCreate1D does not work any longer. this seems not to be an issue in opencl. my app works with v10.6. but maybe just because it does not need to trigger calResCreate1D from opencl.

- i am using cat v10.6, sdk v2.1 on both ubuntu9.10/64 and windows7/64.
- i am not using pinned memory.
- i can see both gpus.
- using aticonfig to disable crossfirex does not help.


To add up -- calResCreate1D() not working with 10.6 only for crossfired GPUs. This includes internal CF like 5970 and 4870x2 and external ones like 2x5870. Looks like for single GPUs it still works OK.


These have been reported to the driver developers and they are looking into the issues.