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

Reply via email to