[Mesa-dev] [PATCH 2/2] i965/hsw: Set MOCS to L3_CACHEABLE for some packets

Chad Versace chad.versace at linux.intel.com
Thu Jul 18 09:14:26 PDT 2013


On 07/18/2013 12:31 AM, Kenneth Graunke wrote:
> On 07/17/2013 04:46 PM, Chad Versace wrote:
>> Set MOCS to L3_CACHEABLE for the following packets, during the normal
>> draw upload path and during blorp:
>>      3DSTATE_CONSTANT_PS
>>      3DSTATE_CONSTANT_VS
>>      3DSTATE_DEPTH_BUFFER
>>      3DSTATE_HIER_DEPTH_BUFFER
>>      3DSTATE_STENCIL_BUFFER
>>      3DSTATE_VERTEX_BUFFERS
>>      CMD_STATE_BASE_ADDRESS
>>      SURFACE_STATE
>>
>> It's not possible to set the MOCS of the MCS buffer, because the MCS
>> inherits MOCS from the parent surface.
>>
>> Gives +5.68% on Xonotic 1920x1080 on Haswell GT2.
>
> At this point, I'm quite happy to accept your choices of what to cache.
>
> Two comments:
>
> I'd really prefer to see each change split into a separate patch.  You don't need to benchmark them separately or
> anything, but it'd be nice. I know Eric had hoped to see this happen as well.

I considered that, but hesitated. I agree, such a patch series will be nicer. V3 coming soon.

> I'd also prefer to see:
>
>    uint32_t mocs = brw->is_haswell ? GEN7_MOCS_L3 : 0;
>
> rather than if-blocks...it's just more concise.  Not a big deal either way, though.

Sure. The if-blocks were an artifact of a more complex experiment I was doing. But,
now that the MOCS settings are so simple, there's no longer a need for the if-block.



More information about the mesa-dev mailing list