On Mon, Aug 22, 2016 at 5:00 PM, Alex Deucher <alexdeuc...@gmail.com> wrote:
> On Fri, Aug 19, 2016 at 5:11 AM, Marek Olšák <mar...@gmail.com> wrote:
>> From: Ronie Salgado <ronies...@gmail.com>
>>
>> ---
>>  src/gallium/winsys/amdgpu/drm/amdgpu_cs.c      | 18 ++++++++++++++----
>>  src/gallium/winsys/amdgpu/drm/amdgpu_surface.c |  9 +++++++--
>>  src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c  | 25 
>> +++++++++++++++++++++++++
>>  3 files changed, 46 insertions(+), 6 deletions(-)
>>
>> diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c 
>> b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
>> index b171cc5..bf3e306 100644
>> --- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
>> +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
>> @@ -973,27 +973,37 @@ static int amdgpu_cs_flush(struct radeon_winsys_cs 
>> *rcs,
>>  {
>>     struct amdgpu_cs *cs = amdgpu_cs(rcs);
>>     struct amdgpu_winsys *ws = cs->ctx->ws;
>>     int error_code = 0;
>>
>>     rcs->current.max_dw += amdgpu_cs_epilog_dws(cs->ring_type);
>>
>>     switch (cs->ring_type) {
>>     case RING_DMA:
>>        /* pad DMA ring to 8 DWs */
>> -      while (rcs->current.cdw & 7)
>> -         OUT_CS(rcs, 0x00000000); /* NOP packet */
>> +      if (ws->info.chip_class <= SI) {
>> +         while (rcs->current.cdw & 7)
>> +            OUT_CS(rcs, 0xf0000000); /* NOP packet */
>> +      } else {
>> +         while (rcs->current.cdw & 7)
>> +            OUT_CS(rcs, 0x00000000); /* NOP packet */
>> +      }
>>        break;
>>     case RING_GFX:
>>        /* pad GFX ring to 8 DWs to meet CP fetch alignment requirements */
>> -      while (rcs->current.cdw & 7)
>> -         OUT_CS(rcs, 0xffff1000); /* type3 nop packet */
>> +      if (ws->info.gfx_ib_pad_with_type2) {
>
> Do we need gfx_ib_pad_with_type2?  Can we just check
> ws->info.chip_class <= SI here?  That would be cleaner and more
> consistent IMHO.

Yeah, it would be somewhat cleaner from the winsys point of view.
However, radeonsi already uses gfx_ib_pad_with_type2 for padding IBs
within an IB.

Maybe we can pad IBs with type3 unconditionally? Does the latest
firmware support that? (if we used the latest firmware, that is)

Marek
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to