mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 07:58:07 +02:00
swr/rast: Add KNOB_DISABLE_SPLIT_DRAW
This is useful for archrast data collection. This greatly speeds up the post processing script since there is significantly less events generated. Finally, this is a simpler option to communicate to users than having them directly adjust MAX_PRIMS_PER_DRAW and MAX_TESS_PRIMS_PER_DRAW. Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
e0a4a25829
commit
3f7ce10b3e
2 changed files with 26 additions and 8 deletions
|
|
@ -270,4 +270,14 @@ KNOBS = [
|
|||
'category' : 'perf_adv',
|
||||
}],
|
||||
|
||||
['DISABLE_SPLIT_DRAW', {
|
||||
'type' : 'bool',
|
||||
'default' : 'false',
|
||||
'desc' : ['Don\'t split large draws into smaller draws.,',
|
||||
'MAX_PRIMS_PER_DRAW and MAX_TESS_PRIMS_PER_DRAW can be used to control split size.',
|
||||
'',
|
||||
'Useful to disable split draws for gathering archrast stats.'],
|
||||
'category' : 'perf_adv',
|
||||
}],
|
||||
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1077,13 +1077,27 @@ uint32_t MaxVertsPerDraw(
|
|||
{
|
||||
API_STATE& state = pDC->pState->state;
|
||||
|
||||
uint32_t vertsPerDraw = totalVerts;
|
||||
|
||||
// We can not split draws that have streamout enabled because there is no practical way
|
||||
// to support multiple threads generating SO data for a single set of buffers.
|
||||
if (state.soState.soEnable)
|
||||
{
|
||||
return totalVerts;
|
||||
}
|
||||
|
||||
// The Primitive Assembly code can only handle 1 RECT at a time. Specified with only 3 verts.
|
||||
if (topology == TOP_RECT_LIST)
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
|
||||
// Is split drawing disabled?
|
||||
if (KNOB_DISABLE_SPLIT_DRAW)
|
||||
{
|
||||
return totalVerts;
|
||||
}
|
||||
|
||||
uint32_t vertsPerDraw = totalVerts;
|
||||
|
||||
switch (topology)
|
||||
{
|
||||
case TOP_POINT_LIST:
|
||||
|
|
@ -1129,12 +1143,6 @@ uint32_t MaxVertsPerDraw(
|
|||
vertsPerDraw = vertsPerPrim * KNOB_MAX_TESS_PRIMS_PER_DRAW;
|
||||
}
|
||||
break;
|
||||
|
||||
// The Primitive Assembly code can only handle 1 RECT at a time.
|
||||
case TOP_RECT_LIST:
|
||||
vertsPerDraw = 3;
|
||||
break;
|
||||
|
||||
default:
|
||||
// We are not splitting up draws for other topologies.
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue