On 07.07.2015 01:32, Ilia Mirkin wrote:
> On Mon, Jul 6, 2015 at 11:29 AM, Vyacheslav Gonakhchyan
> wrote:
>> Hi, everyone.
>>
>> Trying to understand method radeonQueryGetResult (more broadly GPU-CPU
>> sync).
>>
>> static void radeonQueryGetResult(struct gl_context *ctx, struct
>> gl_query_objec
Am 06.07.2015 um 19:54 schrieb Ilia Mirkin:
> That's right. Except really what might have happend was
>
> occl query;
> write X;
> more drawing;
> write X+1;
>
> and then on the CPU, you see X+1. So the tests are always for >= X.
> And if you have more than 2^32 submits, you cry, because I'm *sur
That's right. Except really what might have happend was
occl query;
write X;
more drawing;
write X+1;
and then on the CPU, you see X+1. So the tests are always for >= X.
And if you have more than 2^32 submits, you cry, because I'm *sure*
that nothing implements wraparound properly :)
On Mon, Jul
Ilia, thanks a lot for the info.
So basically if I submit to GPU's command stream:
perform occlusion query,
write X to Y.
I know that query is completed when after reading Y address I get X.
Regards,
Vyacheslav
On Mon, Jul 6, 2015 at 9:13 PM, Ilia Mirkin wrote:
> I'm only really familiar with
I'm only really familiar with nouveau, but I think all GPU hardware
works in roughly the same way. Basically you have some way of
inserting "write X to address Y" into the command stream (aka a
"fence"), after which you insert "write X+1 to address Y" and so on.
If you want the CPU to wait on a giv
Ilia, thanks for the gallium link.
Do you know any links to high level info with broad strokes about how this
sync works? Frankly I do not know driver terminology and wanted to know
more about how this sync is performed for my research. I'm using mesa as a
reference because it has open implementati
On Mon, Jul 6, 2015 at 11:29 AM, Vyacheslav Gonakhchyan
wrote:
> Hi, everyone.
>
> Trying to understand method radeonQueryGetResult (more broadly GPU-CPU
> sync).
>
> static void radeonQueryGetResult(struct gl_context *ctx, struct
> gl_query_object *q)
> {
> struct radeon_query_object *query =
Hi, everyone.
Trying to understand method radeonQueryGetResult (more broadly GPU-CPU
sync).
static void radeonQueryGetResult(struct gl_context *ctx, struct
gl_query_object *q)
{
struct radeon_query_object *query = (struct radeon_query_object *)q;
uint32_t *result;
int i;
rade