vk/0.210.0: Move alphaToOne and alphaToCoverate to multisample state
This commit is contained in:
parent
f97c3b6d58
commit
9fa6e328eb
|
@ -1703,6 +1703,8 @@ typedef struct VkPipelineMultisampleStateCreateInfo {
|
||||||
VkBool32 sampleShadingEnable;
|
VkBool32 sampleShadingEnable;
|
||||||
float minSampleShading;
|
float minSampleShading;
|
||||||
const VkSampleMask* pSampleMask;
|
const VkSampleMask* pSampleMask;
|
||||||
|
VkBool32 alphaToCoverageEnable;
|
||||||
|
VkBool32 alphaToOneEnable;
|
||||||
} VkPipelineMultisampleStateCreateInfo;
|
} VkPipelineMultisampleStateCreateInfo;
|
||||||
|
|
||||||
typedef struct VkStencilOpState {
|
typedef struct VkStencilOpState {
|
||||||
|
@ -1745,8 +1747,6 @@ typedef struct VkPipelineColorBlendStateCreateInfo {
|
||||||
VkStructureType sType;
|
VkStructureType sType;
|
||||||
const void* pNext;
|
const void* pNext;
|
||||||
VkPipelineColorBlendStateCreateFlags flags;
|
VkPipelineColorBlendStateCreateFlags flags;
|
||||||
VkBool32 alphaToCoverageEnable;
|
|
||||||
VkBool32 alphaToOneEnable;
|
|
||||||
VkBool32 logicOpEnable;
|
VkBool32 logicOpEnable;
|
||||||
VkLogicOp logicOp;
|
VkLogicOp logicOp;
|
||||||
uint32_t attachmentCount;
|
uint32_t attachmentCount;
|
||||||
|
|
|
@ -188,6 +188,8 @@ create_pipeline(struct anv_device *device,
|
||||||
.rasterSamples = 1, /* FINISHME: Multisampling */
|
.rasterSamples = 1, /* FINISHME: Multisampling */
|
||||||
.sampleShadingEnable = false,
|
.sampleShadingEnable = false,
|
||||||
.pSampleMask = (VkSampleMask[]) { UINT32_MAX },
|
.pSampleMask = (VkSampleMask[]) { UINT32_MAX },
|
||||||
|
.alphaToCoverageEnable = false,
|
||||||
|
.alphaToOneEnable = false,
|
||||||
},
|
},
|
||||||
.pDepthStencilState = ds_state,
|
.pDepthStencilState = ds_state,
|
||||||
.pColorBlendState = cb_state,
|
.pColorBlendState = cb_state,
|
||||||
|
@ -285,8 +287,6 @@ init_color_pipeline(struct anv_device *device)
|
||||||
|
|
||||||
const VkPipelineColorBlendStateCreateInfo cb_state = {
|
const VkPipelineColorBlendStateCreateInfo cb_state = {
|
||||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
|
.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
|
||||||
.alphaToCoverageEnable = false,
|
|
||||||
.alphaToOneEnable = false,
|
|
||||||
.logicOpEnable = false,
|
.logicOpEnable = false,
|
||||||
.attachmentCount = 1,
|
.attachmentCount = 1,
|
||||||
.pAttachments = (VkPipelineColorBlendAttachmentState []) {
|
.pAttachments = (VkPipelineColorBlendAttachmentState []) {
|
||||||
|
@ -469,8 +469,6 @@ create_depthstencil_pipeline(struct anv_device *device,
|
||||||
|
|
||||||
const VkPipelineColorBlendStateCreateInfo cb_state = {
|
const VkPipelineColorBlendStateCreateInfo cb_state = {
|
||||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
|
.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
|
||||||
.alphaToCoverageEnable = false,
|
|
||||||
.alphaToOneEnable = false,
|
|
||||||
.logicOpEnable = false,
|
.logicOpEnable = false,
|
||||||
.attachmentCount = 0,
|
.attachmentCount = 0,
|
||||||
.pAttachments = NULL,
|
.pAttachments = NULL,
|
||||||
|
|
|
@ -311,7 +311,8 @@ populate_wm_prog_key(const struct brw_device_info *devinfo,
|
||||||
key->nr_color_regions = render_pass->subpasses[info->subpass].color_count;
|
key->nr_color_regions = render_pass->subpasses[info->subpass].color_count;
|
||||||
|
|
||||||
key->replicate_alpha = key->nr_color_regions > 1 &&
|
key->replicate_alpha = key->nr_color_regions > 1 &&
|
||||||
info->pColorBlendState->alphaToCoverageEnable;
|
info->pMultisampleState &&
|
||||||
|
info->pMultisampleState->alphaToCoverageEnable;
|
||||||
|
|
||||||
if (info->pMultisampleState && info->pMultisampleState->rasterSamples > 1) {
|
if (info->pMultisampleState && info->pMultisampleState->rasterSamples > 1) {
|
||||||
/* We should probably pull this out of the shader, but it's fairly
|
/* We should probably pull this out of the shader, but it's fairly
|
||||||
|
|
|
@ -248,7 +248,8 @@ gen7_emit_ds_state(struct anv_pipeline *pipeline,
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gen7_emit_cb_state(struct anv_pipeline *pipeline,
|
gen7_emit_cb_state(struct anv_pipeline *pipeline,
|
||||||
const VkPipelineColorBlendStateCreateInfo *info)
|
const VkPipelineColorBlendStateCreateInfo *info,
|
||||||
|
const VkPipelineMultisampleStateCreateInfo *ms_info)
|
||||||
{
|
{
|
||||||
struct anv_device *device = pipeline->device;
|
struct anv_device *device = pipeline->device;
|
||||||
|
|
||||||
|
@ -283,7 +284,7 @@ gen7_emit_cb_state(struct anv_pipeline *pipeline,
|
||||||
.ColorBlendFunction = vk_to_gen_blend_op[a->colorBlendOp],
|
.ColorBlendFunction = vk_to_gen_blend_op[a->colorBlendOp],
|
||||||
.SourceBlendFactor = vk_to_gen_blend[a->srcColorBlendFactor],
|
.SourceBlendFactor = vk_to_gen_blend[a->srcColorBlendFactor],
|
||||||
.DestinationBlendFactor = vk_to_gen_blend[a->dstColorBlendFactor],
|
.DestinationBlendFactor = vk_to_gen_blend[a->dstColorBlendFactor],
|
||||||
.AlphaToCoverageEnable = info->alphaToCoverageEnable,
|
.AlphaToCoverageEnable = ms_info && ms_info->alphaToCoverageEnable,
|
||||||
|
|
||||||
# if 0
|
# if 0
|
||||||
bool AlphaToOneEnable;
|
bool AlphaToOneEnable;
|
||||||
|
@ -355,7 +356,8 @@ genX(graphics_pipeline_create)(
|
||||||
|
|
||||||
gen7_emit_ds_state(pipeline, pCreateInfo->pDepthStencilState);
|
gen7_emit_ds_state(pipeline, pCreateInfo->pDepthStencilState);
|
||||||
|
|
||||||
gen7_emit_cb_state(pipeline, pCreateInfo->pColorBlendState);
|
gen7_emit_cb_state(pipeline, pCreateInfo->pColorBlendState,
|
||||||
|
pCreateInfo->pMultisampleState);
|
||||||
|
|
||||||
anv_batch_emit(&pipeline->batch, GEN7_3DSTATE_VF_STATISTICS,
|
anv_batch_emit(&pipeline->batch, GEN7_3DSTATE_VF_STATISTICS,
|
||||||
.StatisticsEnable = true);
|
.StatisticsEnable = true);
|
||||||
|
|
|
@ -148,7 +148,8 @@ emit_rs_state(struct anv_pipeline *pipeline,
|
||||||
|
|
||||||
static void
|
static void
|
||||||
emit_cb_state(struct anv_pipeline *pipeline,
|
emit_cb_state(struct anv_pipeline *pipeline,
|
||||||
const VkPipelineColorBlendStateCreateInfo *info)
|
const VkPipelineColorBlendStateCreateInfo *info,
|
||||||
|
const VkPipelineMultisampleStateCreateInfo *ms_info)
|
||||||
{
|
{
|
||||||
struct anv_device *device = pipeline->device;
|
struct anv_device *device = pipeline->device;
|
||||||
|
|
||||||
|
@ -206,8 +207,8 @@ emit_cb_state(struct anv_pipeline *pipeline,
|
||||||
anv_state_pool_alloc(&device->dynamic_state_pool, num_dwords * 4, 64);
|
anv_state_pool_alloc(&device->dynamic_state_pool, num_dwords * 4, 64);
|
||||||
|
|
||||||
struct GENX(BLEND_STATE) blend_state = {
|
struct GENX(BLEND_STATE) blend_state = {
|
||||||
.AlphaToCoverageEnable = info->alphaToCoverageEnable,
|
.AlphaToCoverageEnable = ms_info && ms_info->alphaToCoverageEnable,
|
||||||
.AlphaToOneEnable = info->alphaToOneEnable,
|
.AlphaToOneEnable = ms_info && ms_info->alphaToOneEnable,
|
||||||
};
|
};
|
||||||
|
|
||||||
for (uint32_t i = 0; i < info->attachmentCount; i++) {
|
for (uint32_t i = 0; i < info->attachmentCount; i++) {
|
||||||
|
@ -365,7 +366,8 @@ genX(graphics_pipeline_create)(
|
||||||
assert(pCreateInfo->pRasterState);
|
assert(pCreateInfo->pRasterState);
|
||||||
emit_rs_state(pipeline, pCreateInfo->pRasterState, extra);
|
emit_rs_state(pipeline, pCreateInfo->pRasterState, extra);
|
||||||
emit_ds_state(pipeline, pCreateInfo->pDepthStencilState);
|
emit_ds_state(pipeline, pCreateInfo->pDepthStencilState);
|
||||||
emit_cb_state(pipeline, pCreateInfo->pColorBlendState);
|
emit_cb_state(pipeline, pCreateInfo->pColorBlendState,
|
||||||
|
pCreateInfo->pMultisampleState);
|
||||||
|
|
||||||
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_VF_STATISTICS),
|
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_VF_STATISTICS),
|
||||||
.StatisticsEnable = true);
|
.StatisticsEnable = true);
|
||||||
|
|
Loading…
Reference in New Issue