On 04.11.2015 17:47, Marek Olšák wrote: > On Nov 4, 2015 9:31 AM, "Michel Dänzer" <mic...@daenzer.net > <mailto:mic...@daenzer.net>> wrote: >> >> On 04.11.2015 08:46, Marek Olšák wrote: >> > >> > @@ -209,11 +211,48 @@ static void si_clear_buffer(struct > pipe_context *ctx, struct pipe_resource *dst, >> > r600_resource(dst)->TC_L2_dirty = true; >> > } >> > >> > +/** >> > + * Realign the CP DMA engine. This must be done after a copy with > an unaligned >> > + * size. >> > + * >> > + * \param size Remaining size to the CP DMA alignment. >> > + */ >> > +static void si_cp_dma_realign_engine(struct si_context *sctx, > unsigned size) >> > +{ >> > + uint64_t va; >> > + unsigned dma_flags = 0; >> > + unsigned scratch_size = CP_DMA_ALIGNMENT * 2; >> > + >> > + assert(size < CP_DMA_ALIGNMENT); >> > + >> > + /* Use the scratch buffer as the dummy buffer. The 3D engine > should be >> > + * idle at this point. >> > + */ >> > + if (!sctx->scratch_buffer || >> > + sctx->scratch_buffer->b.b.width0 < scratch_size) { >> > + r600_resource_reference(&sctx->scratch_buffer, NULL); >> > + sctx->scratch_buffer = >> > + si_resource_create_custom(&sctx->screen->b.b, >> > + PIPE_USAGE_DEFAULT, >> > + scratch_size); >> > + } >> > + >> > + si_cp_dma_prepare(sctx, &sctx->scratch_buffer->b.b, >> > + &sctx->scratch_buffer->b.b, size, size, > &dma_flags); >> > + >> > + va = sctx->scratch_buffer->gpu_address; >> > + si_emit_cp_dma_copy_buffer(sctx, va, va + CP_DMA_ALIGNMENT, size, >> > + dma_flags); >> > +} >> >> Should this update sctx->emit_scratch_reloc ? > > Not strictly needed, but I'll add that before pushing.
This patch is Reviewed-by: Michel Dänzer <michel.daen...@amd.com> as well then. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev