On Fri, Jun 15, 2012 at 02:15:34PM +0100, Miguel Lopes Santos Ramos wrote: > Hi all, > > I'm trying to learn to program radeons in assembly in Linux and > already got help once in this mailing list. > > I'm programming in C++ using the kernel DRM ioctls directly because > libdrm appears to be a thin wrapper around these (for my purpose, > which is using the GPU for computing), but in doing so, I need to > understand what libdrm is doing. >
r600g has preliminary support for OpenCL programs using the clover state tracker [1]. If you are interested in using the GPU for computing I would recommend using clover or writing your own state tracker to take advantage of the compute code that already exists in r600g. -Tom [1] http://dri.freedesktop.org/wiki/GalliumCompute > Now, the cs_gem_write_reloc function, emits two dwords which encode a > relocation and adds information on that relocation to an array which > is passed to the kernel. > The function goes to some length to make sure a single > drm_radeon_cs_reloc structure is passed to the kernel for each buffer > object. > > Now, I'm trying to understand what are the constraints, I don't know > what is the desired behaviour. > > This function begins with: > > if ((read_domain && write_domain) || (!read_domain && !write_domain)) { > /* in one CS a bo can only be in read or write domain but not > * in read & write domain at the same sime > */ > > Now, the comment seems to say one thing whereas the if-condition seems > to say the opposite. Am I mistaken? Which is the desired behaviour, > that of the comment or that of the code? > > Then, the code block within if (reloc->handle == bo->handle) { ... } > is even more confusing to me. > For instance, the following line: > > reloc->flags |= (flags & reloc->flags); > > This seems to be a no-op. Anyway, I'm not so worried about these flags > which appear never to be used... > But what are really the constraints for this read_domains and write_domain? > > > Thank you very much, > > -- > Miguel Ramos > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev