[PATCH 2/2] wined3d: Pass a wined3d_device pointer to wined3d_from_cs().
gmascellani at codeweavers.com
Fri Jul 2 09:59:00 CDT 2021
Il 02/07/21 00:35, Zebediah Figura ha scritto:
> static BOOL wined3d_cs_queue_is_empty(const struct wined3d_cs *cs, const struct wined3d_cs_queue *queue)
> - wined3d_from_cs(cs);
> + wined3d_from_cs(cs->c.device);
> return *(volatile LONG *)&queue->head == queue->tail;
That's not related to this patch, but it caught my attention: why are we
using "volatile" here?
My understanding is that "volatile" should only be used to deal with
special memory (like MMIO), but I don't think this it is the case here.
(or is it?)
Here it seems that "volatile" is using to do inter-thread communication,
but that's in general wrong: it doesn't protect from data races and it
doesn't ensure atomicity.
What am I missing?
More information about the wine-devel