On Thu, Jul 3, 2014 at 10:59 AM, Alex Deucher <[email protected]> wrote: > Someone mentioned stability issues with cedar with the golden register > kernel patch. Can you see if skipping the golden register setup > helps? If so can you narrow down which registers are problematic?
I'll give it a shot and see if it helps. I can reliably break the machine currently with luxrays' slg4 program, and the gpu doesn't recover after 10-sec as it should. I tried Tom's wavefront-size workaround with no apparent change. It's possible that we're messing something up in the instruction selection/lowering, but I'll give the kernel change a try first. --Aaron > > Alex > >> and I'm getting an instruction selection error on radeonsi. Haven't >> managed to track that down yet, but at least it means that all >> required built-ins/defines for luxrays are now present (at least with >> my own libclc tree), at least with image support disabled in luxrays. >> >> If you enable image support, I believe that it is still going to fail >> due to mismatches/oddness with the number of supported pixel formats. >> >> --Aaron >> >>> Reviewed-by: Tom Stellard <[email protected]> >>> >>>> Signed-off-by: Aaron Watry <[email protected]> >>>> CC: Tom Stellard <[email protected]> >>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76223 >>>> --- >>>> src/gallium/drivers/radeon/radeon_llvm_util.c | 10 +++++++--- >>>> 1 file changed, 7 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.c >>>> b/src/gallium/drivers/radeon/radeon_llvm_util.c >>>> index 2ace91f..ec11559 100644 >>>> --- a/src/gallium/drivers/radeon/radeon_llvm_util.c >>>> +++ b/src/gallium/drivers/radeon/radeon_llvm_util.c >>>> @@ -100,13 +100,17 @@ LLVMModuleRef >>>> radeon_llvm_get_kernel_module(LLVMContextRef ctx, unsigned index, >>>> kernel_metadata = MALLOC(num_kernels * sizeof(LLVMValueRef)); >>>> LLVMGetNamedMetadataOperands(mod, "opencl.kernels", kernel_metadata); >>>> for (i = 0; i < num_kernels; i++) { >>>> - LLVMValueRef kernel_signature, kernel_function; >>>> + LLVMValueRef kernel_signature, *kernel_function; >>>> + unsigned num_kernel_md_operands; >>>> if (i == index) { >>>> continue; >>>> } >>>> kernel_signature = kernel_metadata[i]; >>>> - LLVMGetMDNodeOperands(kernel_signature, &kernel_function); >>>> - LLVMDeleteFunction(kernel_function); >>>> + num_kernel_md_operands = >>>> LLVMGetMDNodeNumOperands(kernel_signature); >>>> + kernel_function = MALLOC(num_kernel_md_operands * sizeof >>>> (LLVMValueRef)); >>>> + LLVMGetMDNodeOperands(kernel_signature, kernel_function); >>>> + LLVMDeleteFunction(*kernel_function); >>>> + FREE(kernel_function); >>>> } >>>> FREE(kernel_metadata); >>>> radeon_llvm_optimize(mod); >>>> -- >>>> 1.9.1 >>>> >>>> _______________________________________________ >>>> mesa-dev mailing list >>>> [email protected] >>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev >> _______________________________________________ >> mesa-dev mailing list >> [email protected] >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
