[Mesa-dev] [PATCH] genxml: Consistently use a numeric "MOCS" field
Jason Ekstrand
jason at jlekstrand.net
Wed Dec 12 17:17:38 UTC 2018
On Wed, Dec 12, 2018 at 11:09 AM Jason Ekstrand <jason at jlekstrand.net>
wrote:
> On Tue, Dec 11, 2018 at 10:31 PM Kenneth Graunke <kenneth at whitecape.org>
> wrote:
>
>> When we first started using genxml, we decided to represent MOCS as an
>> actual structure, and pack values. However, in many places, it was more
>> convenient to use a numeric value rather than treating it as a struct,
>> so we added secondary setters in a bunch of places as well.
>>
>> We were not entirely consistent, either. Some places only had one.
>> Gen6 had both kinds of setters for STATE_BASE_ADDRESS, but newer gens
>> only had the struct-based setters. The names were sometimes "Constant
>> Buffer Object Control State" instead of "Memory", making it harder to
>> find. Many had prefixes like "Vertex Buffer MOCS"...in a vertex buffer
>> packet...which is a bit redundant.
>>
>> On modern hardware, MOCS is simply an index into a table, but we were
>> still carrying around the structure with an "Index to MOCS Table" field,
>> in addition to the direct numeric setters. This is clunky - we really
>> just want a number on new hardware.
>>
>
> This gets a bit sticky because the "Index to MOCS Table" field starts at
> bit 1 not 0 so the MOCS value in your patch isn't actually the index, it's
> index * 2. Do we want to "fix" this and make the MOCS value the thing we
> actually want on gen9+?
>
One other comment: While the MEMORY_OBJECT_CONTROL_STATE field isn't set
by drivers it is decoded by aubinator (though sometimes not correctly :-/)
and may be useful to keep around for that reason.
Note: Neither of those is a NAK. :-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181212/b21c8336/attachment.html>
More information about the mesa-dev
mailing list