[Mesa-dev] [RFC PATCH 10/14] anv: Add clflush to states.
Rafael Antognolli
rafael.antognolli at intel.com
Tue Dec 11 23:32:39 UTC 2018
On Mon, Dec 10, 2018 at 01:52:15PM -0600, Jason Ekstrand wrote:
> This seems very much over-the-top. It would be better to either find the
> specific bug or else just allocate the BOs we use for states as snooped. See
> also the anv_gem_set_caching call in genX_query.c.
It seems we were missing some flushes in the states allocated in
anv_shader_bin_create(). I added them there and apparently I don't need
this patch anymore.
> On Fri, Dec 7, 2018 at 6:06 PM Rafael Antognolli <rafael.antognolli at intel.com>
> wrote:
>
> TODO: This is just flushing the entire dynamic states on every execbuf.
> Maybe it's too much. However, in theory we should be already flushing
> the states as needed, but I think we didn't hit any bug due to the
> coherence implied by userptr.
> ---
> src/intel/vulkan/anv_batch_chain.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/src/intel/vulkan/anv_batch_chain.c b/src/intel/vulkan/
> anv_batch_chain.c
> index 65df28ccb91..99009679435 100644
> --- a/src/intel/vulkan/anv_batch_chain.c
> +++ b/src/intel/vulkan/anv_batch_chain.c
> @@ -1366,6 +1366,10 @@ anv_reloc_list_add_dep(struct anv_cmd_buffer
> *cmd_buffer,
>
> anv_block_pool_foreach_bo(bo_list, iter, bo) {
> _mesa_set_add(relocs->deps, bo);
> + if (!cmd_buffer->device->info.has_llc) {
> + for (uint32_t i = 0; i < bo->size; i += CACHELINE_SIZE)
> + __builtin_ia32_clflush(bo->map + i);
> + }
> }
> }
>
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
More information about the mesa-dev
mailing list