[Beignet] LuxRays vs Beignet: next steps

Zhigang Gong zhigang.gong at linux.intel.com
Wed Apr 24 00:27:40 PDT 2013


> -----Original Message-----
> From:
> beignet-bounces+zhigang.gong=linux.intel.com at lists.freedesktop.org
> [mailto:beignet-bounces+zhigang.gong=linux.intel.com at lists.freedesktop.
> org] On Behalf Of Simon Richter
> Sent: Tuesday, April 23, 2013 6:49 PM
> To: beignet at lists.freedesktop.org
> Subject: [Beignet] LuxRays vs Beignet: next steps
> 
> Hi,
> 
> I'm still trying to get LuxRays to work on Beignet. LuxRays can run in two
> modes, with or without using images on the GPU side as storage.
> 
> With images, the current blockers are:
> 
> 1. get_image_width is not available
> 
> That should be solvable, I think, and this is probably the next thing I'm
> going to be looking at.
[Gong, Zhigang] Right, this is solvable, two options, one is to store the
image's size info to the payload.
The second is to use the data port message to get a 2d surface's information
at runtime. Which direction
do you want to take?
> 
> 2. sampler_t initialization with flags does not compile
> 
> This is more difficult. sampler_t is a pointer to an int that lives in a
special
> area, so I wonder how I should go about creating that from the flags
> parameter. Do I allocate a sampler variable there and have sampler_t
> behave as a smart pointer?
[Gong, Zhigang] I'm not very sure what the flags you mentioned here.  I'm
aware that we don't support sampler initialization on kernel currently.
One possible solution is to create all the possible sampler in run time
library which should be about 10 possible combinations. Then we can map
a normal integer to the real sampler index in the kernel side, so we don't
need to define the sampler_t as a special address space, we just need to
define it as a normal integer. Thus it will support any initialization in
kernel side. I will do this.

> 
> Without images, it is mainly assertions during compilation:
> 
> 3. LOADI does not handle 64 bit integers
> 
> Not sure if that can be easily handled. That will require a rainy weekend
or
> two.
[Gong, Zhigang] We don't support 64bit data type currently, so this may need
more effort.
> 
> 4. LOADI does not handle booleans
> 
> As far as I can see, there is no native boolean type, so it would boil
down
> to integers. For select() to work, the value representing "true"
> should at least have the MSB set, but I think it might also make sense to
> create a different internal type that is similar to an integer but has
> different semantics.
> 
> 5. Booleans cannot be used in Phi nodes.
> 
> This appears to be related to the missing LOADI boolean support -- a Phi
> node where a source path has a fixed value will need a preceding LOADI
> -- so I think that is solved when LOADI is fixed.
[Gong, Zhigang] could you write one or two unit test cases to hit the LOADI
and this Phi related limitations?  If so, it will be helpful for someone to
dig into it.
> 
>    Simon
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet



More information about the Beignet mailing list