2012/1/6 Christian K?nig <deathsimple at vodafone.de>:
> On 06.01.2012 15:12, Alex Deucher wrote:
>>
>> 2012/1/6 Christian K?nig<deathsimple at vodafone.de>:
>>>
>>> On -10.01.-28163 20:59, alexdeucher at gmail.com wrote:
>>> [SNIP]
>>>
>>>> ?#define RADEON_CHUNK_ID_RELOCS ? ? ? ?0x01
>>>> ?#define RADEON_CHUNK_ID_IB ? ?0x02
>>>> ?#define RADEON_CHUNK_ID_FLAGS 0x03
>>>>
>>>> ?/* The first dword of RADEON_CHUNK_ID_FLAGS is a uint32 of these flags:
>>>> */
>>>> ?#define RADEON_CS_KEEP_TILING_FLAGS 0x01
>>>> +#define RADEON_CS_USE_VM ? ? ? ? ? ?0x02
>>>> +/* The second dword of RADEON_CHUNK_ID_FLAGS is a uint32 that sets the
>>>> ring type */
>>>> +#define RADEON_CS_RING_GFX ? ? ? ? ?0
>>>> +#define RADEON_CS_RING_COMPUTE ? ? ?1
>>>> +/* The third dword of RADEON_CHUNK_ID_FLAGS is a sint32 that sets the
>>>> priority */
>>>> +/* 0 = normal, + = higher priority, - = lower priority */
>>>> +struct drm_radeon_cs_ring_priority {
>>>> + ? ? ? int32_t ? ? ? ? ? ? ? ? priority;
>>>> +};
>>>
>>> Sorry, missed that one before, the "struct drm_radeon_cs_ring_priority"
>>> is
>>> pretty much pointless.
>>
>> I didn't have a struct for priority before, but someone suggested it
>> would be clearer what the 3rd dword was used for if I added a struct.
>> Basically just treat the third flag dword as a signed int32.
>
> Yeah that suggestion came from me, but what I had in mind was a structure
> for the whole flags chunk, instead of just the priority field.
>
>
>>> My comment was going more into that direction:
>>> struct drm_radeon_cs_flags {
>>> ? ?uint32_t ? ? ?flags;
>>> ? ?uint32_t ? ? ?ring_type;
>>> ? ?int32_t ? ? ? ?priority;
>>> };
>>>
>>> Anyway, the patch is finally committed, but I think we should fix
>>> (remove?)
>>> that before it goes further upstream.
>>
>> Would there be any issues if we need to extend the stuct to add an
>> extra field later? ?Also, not all of the fields are necessary. ?You
>> can just allocate 1 dword if you just need the flags dword. ?I've fine
>> to just drop the struct.
>>
> Well, using structs as interface definitions has always suffered from those
> problems, e. g. for compatibility you can only extend it at the end, members
> might have ambiguous sizes, members might be packed differently..... ?I'm
> still just prefering them because they are machine readable, instead of
> human readable comments, and machines tend to produce less bugs than humans
> while calculations memory offsets...
>
> But I don't have enough experience with kernel interfaces to favor one style
> of coding over another, so if you think it's ok to drop it then just go
> ahead. I just wanted to note that there was a misunderstanding.

I just went ahead and dropped it for now.  I'm open too suggestions
for better approaches though.

Alex

>
> Christian.

Reply via email to