anv/gen7_pipeline: Set multisample state using shared function

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Anuj Phogat 2016-08-08 14:36:40 -07:00
parent 2ef5063ad7
commit f16295a198
1 changed files with 4 additions and 16 deletions

View File

@ -81,22 +81,7 @@ genX(graphics_pipeline_create)(
pCreateInfo->pRasterizationState, extra);
emit_3dstate_streamout(pipeline, pCreateInfo->pRasterizationState);
if (pCreateInfo->pMultisampleState &&
pCreateInfo->pMultisampleState->rasterizationSamples > 1)
anv_finishme("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO");
uint32_t samples = pCreateInfo->pMultisampleState ?
pCreateInfo->pMultisampleState->rasterizationSamples : 1;
uint32_t log2_samples = __builtin_ffs(samples) - 1;
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_MULTISAMPLE), ms) {
ms.PixelLocation = PIXLOC_CENTER;
ms.NumberofMultisamples = log2_samples;
}
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_SAMPLE_MASK), sm) {
sm.SampleMask = 0xff;
}
emit_ms_state(pipeline, pCreateInfo->pMultisampleState);
const struct brw_vs_prog_data *vs_prog_data = get_vs_prog_data(pipeline);
@ -252,6 +237,9 @@ genX(graphics_pipeline_create)(
ps.KernelStartPointer2 = pipeline->ps_ksp0 + wm_prog_data->prog_offset_2;
}
uint32_t samples = pCreateInfo->pMultisampleState ?
pCreateInfo->pMultisampleState->rasterizationSamples : 1;
/* FIXME-GEN7: This needs a lot more work, cf gen7 upload_wm_state(). */
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_WM), wm) {
wm.StatisticsEnable = true;