Summary: | CLProgramTest.programBinariesTest and LowLevelBindingTest.lowLevelVectorAddTest cause SIGSEGV or EXCEPTION_ACCESS_VIOLATION on AMD cards | ||
---|---|---|---|
Product: | [JogAmp] Jocl | Reporter: | Wade Walker <wwalker3> |
Component: | opencl | Assignee: | Wade Walker <wwalker3> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | sgothel |
Priority: | --- | ||
Version: | 1 | ||
Hardware: | All | ||
OS: | all | ||
Type: | --- | SCM Refs: | |
Workaround: | --- |
Description
Wade Walker
2014-03-02 16:50:39 CET
Bought a used Radeon HD 5450 at a thrift shop yesterday, will try to duplicate these at home and debug. Duplicated these errors on Win 8.1 with Radeon HD 5450, debugging now. programBinariesTest() failure was due to AMD drivers crashing in clCreateKernelsInProgram() when the program is not built yet, instead of returning error code CL_INVALID_PROGRAM_EXECUTABLE as they should. lowLevelVectorAddTest() failure was apparently due to the AMD drivers writing past the end of a direct byte buffer in such a way that it made System.gc() crash when called during teardown (this crash didn't even dump stack). Making the buffer larger solved the problem. Fixes are at https://github.com/WadeWalker/jocl/tree/bug_989_fix_AMD_driver_crashes, waiting to merge until build server is back up lowLevelVectorAddTest() still fails on linux-x86_64-amd and win7-x86_32-amd; will try increasing buffer size further and rewinding it between all reuses. That fixed it. |