EXA - when does it's implementation depend on DRM?

Alex Deucher alexdeucher at gmail.com
Mon Jul 5 21:30:06 PDT 2010


2010/7/4 Dave Airlie <airlied at gmail.com>:
> 2010/7/5 Rafał Miłecki <zajec5 at gmail.com>:
>> W dniu 4 lipca 2010 22:24 użytkownik Dave Airlie <airlied at gmail.com> napisał:
>>> 2010/7/5 Rafał Miłecki <zajec5 at gmail.com>:
>>>> AFAIU EXA is collection of operations (Solid, Copy, UploadToScreen,
>>>> DownloadFromScreen) that touch VRAM. So we can tell hardware to move
>>>> xterm window 100px right (Copy) and fill freed place with blue
>>>> (Solid). Is that right?
>>>>
>>>> So my question is: when implementing EXA (in DDX) needs DRM and when
>>>> it does not? I know in case of R6xx-R7xx we had to get DRM first to
>>>> receive EXA. AFAIK it wasn't the case with R1xx-R5xx.
>>>>
>>>> On the other hand some VIA's driver needs DRM for EXA on Chrome9,
>>>> while openChrome claims to support EXA without DRM[1].
>>>>
>>>> Could someone explain this to me, please?
>>>>
>>>> [1] http://phoronix.com/forums/showthread.php?p=89776
>>>
>>> Nothing to do with EXA, its up to the driver underneath.
>>
>> That's why I mentioned "implementation" in subject, not EXA itself :)
>>
>>
>>> If the driver can accel the operations without the drm, it doesn't
>>> need the drm, it the driver requires the drm to accel operations then
>>> it needs the drm
>>
>> Any tip why acceleration operations are available on some hardware
>> only with DRM, and sometimes not? Is this related to the way how we
>> send commands to GPU? AFAIK every command submission implementation
>> needs DRM... but somehow in case of r1xx-r5xx it is not true.
>
> You can program some GPUs via MMIO, its slower and you can't DMA
> to/from main memory at all, it just works in an offscreen memory area.
>
> Its generally pointless maintaining these codepaths since nobody tests
> them, and for chips like r600 I don't think MMIO is sufficient to
> program accel engines.

You can't program the r6xx+ 3D engines via MMIO directly.

>
> Not so sure on r500 its sufficient either since some regs can't be
> programmed via MMIO properly, but we have the codepaths since they are
> so similiar to r100.

Only copy and solid are available via mmio on r5xx since the
WAIT_UNTIL register and a few others are not accessible via MMIO.  In
theory even the 2D engine could be problematic without those regs, but
it's generally fairly well behaved.

Alex


More information about the dri-devel mailing list