Lines Matching refs:state
369 memset(&cmdbuf->state, 0, sizeof(cmdbuf->state));
444 /* Reset the state */
445 memset(&cmdbuf->state, 0, sizeof(cmdbuf->state));
549 * command buffer's state. Otherwise, we must *reset* its state. In both
554 * If a command buffer is in the executable state and the command buffer
560 * the command buffer in the recording state.
574 enum dzn_event_state state = (uintptr_t)he->data;
576 if (state != DZN_EVENT_STATE_EXTERNAL_WAIT) {
577 struct dzn_cmd_event_signal signal = { (struct dzn_event *)he->key, state == DZN_EVENT_STATE_SET };
680 struct dzn_cmd_buffer_query_pool_state *state =
681 vk_alloc(&cmdbuf->vk.pool->alloc, sizeof(*state),
683 if (!state) {
688 util_dynarray_init(&state->reset, NULL);
689 util_dynarray_init(&state->collect, NULL);
690 util_dynarray_init(&state->wait, NULL);
691 util_dynarray_init(&state->signal, NULL);
692 return state;
697 struct dzn_cmd_buffer_query_pool_state *state)
699 util_dynarray_fini(&state->reset);
700 util_dynarray_fini(&state->collect);
701 util_dynarray_fini(&state->wait);
702 util_dynarray_fini(&state->signal);
703 vk_free(&cmdbuf->vk.pool->alloc, state);
711 struct dzn_cmd_buffer_query_pool_state *state = NULL;
716 state = dzn_cmd_buffer_create_query_pool_state(cmdbuf);
717 if (!state)
720 he = _mesa_hash_table_insert(cmdbuf->queries.ht, qpool, state);
722 dzn_cmd_buffer_destroy_query_pool_state(cmdbuf, state);
727 state = he->data;
730 return state;
736 struct dzn_cmd_buffer_query_pool_state *state,
741 uint32_t nbits = util_dynarray_num_elements(&state->collect, BITSET_WORD) * BITSET_WORDBITS;
751 dzn_cmd_buffer_dynbitset_reserve(cmdbuf, &state->signal, first_query + query_count - 1);
758 util_dynarray_element(&state->collect, BITSET_WORD, 0);
804 dzn_cmd_buffer_dynbitset_set_range(cmdbuf, &state->signal, start, count);
805 dzn_cmd_buffer_dynbitset_clear_range(cmdbuf, &state->collect, start, count);
848 struct dzn_cmd_buffer_query_pool_state *state = he->data;
850 dzn_cmd_buffer_collect_queries(cmdbuf, qpool, state, 0, qpool->query_count);
854 result = dzn_cmd_buffer_collect_query_ops(cmdbuf, qpool, &state->reset, &cmdbuf->queries.reset);
858 result = dzn_cmd_buffer_collect_query_ops(cmdbuf, qpool, &state->wait, &cmdbuf->queries.wait);
862 result = dzn_cmd_buffer_collect_query_ops(cmdbuf, qpool, &state->signal, &cmdbuf->queries.signal);
2252 const struct dzn_pipeline *pipeline = cmdbuf->state.bindpoint[bindpoint].pipeline;
2258 cmdbuf->state.pipeline ? cmdbuf->state.pipeline->state : NULL;
2260 if (cmdbuf->state.bindpoint[bindpoint].dirty & DZN_CMD_BINDPOINT_DIRTY_PIPELINE) {
2266 dzn_graphics_pipeline_get_state(gfx, &cmdbuf->state.pipeline_variant);
2272 ID3D12PipelineState *new_pipeline_state = pipeline->state;
2275 ID3D12GraphicsCommandList1_SetPipelineState(cmdbuf->cmdlist, pipeline->state);
2276 cmdbuf->state.pipeline = pipeline;
2285 &cmdbuf->state.bindpoint[bindpoint].desc_state;
2293 cmdbuf->state.bindpoint[bindpoint].pipeline;
2295 if (!(cmdbuf->state.bindpoint[bindpoint].dirty & DZN_CMD_BINDPOINT_DIRTY_HEAPS))
2354 if (new_heaps[D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV] != cmdbuf->state.heaps[D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV] ||
2355 new_heaps[D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER] != cmdbuf->state.heaps[D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER]) {
2364 for (unsigned h = 0; h < ARRAY_SIZE(cmdbuf->state.heaps); h++)
2365 cmdbuf->state.heaps[h] = new_heaps[h];
2387 if (!(cmdbuf->state.bindpoint[bindpoint].dirty & DZN_CMD_BINDPOINT_DIRTY_SYSVALS))
2390 const struct dzn_pipeline *pipeline = cmdbuf->state.bindpoint[bindpoint].pipeline;
2395 sizeof(cmdbuf->state.sysvals.gfx) / 4,
2396 &cmdbuf->state.sysvals.gfx, 0);
2399 sizeof(cmdbuf->state.sysvals.compute) / 4,
2400 &cmdbuf->state.sysvals.compute, 0);
2408 (const struct dzn_graphics_pipeline *)cmdbuf->state.pipeline;
2410 if (!(cmdbuf->state.dirty & DZN_CMD_DIRTY_VIEWPORTS) ||
2414 ID3D12GraphicsCommandList1_RSSetViewports(cmdbuf->cmdlist, pipeline->vp.count, cmdbuf->state.viewports);
2421 (const struct dzn_graphics_pipeline *)cmdbuf->state.pipeline;
2423 if (!(cmdbuf->state.dirty & DZN_CMD_DIRTY_SCISSORS))
2428 ID3D12GraphicsCommandList1_RSSetScissorRects(cmdbuf->cmdlist, 1, &cmdbuf->state.render.area);
2434 memcpy(scissors, cmdbuf->state.scissors, sizeof(D3D12_RECT) * pipeline->scissor.count);
2436 scissors[i].left = MAX2(scissors[i].left, cmdbuf->state.render.area.left);
2437 scissors[i].top = MAX2(scissors[i].top, cmdbuf->state.render.area.top);
2438 scissors[i].right = MIN2(scissors[i].right, cmdbuf->state.render.area.right);
2439 scissors[i].bottom = MIN2(scissors[i].bottom, cmdbuf->state.render.area.bottom);
2450 BITSET_FOREACH_RANGE(start, end, cmdbuf->state.vb.dirty, MAX_VBS)
2451 ID3D12GraphicsCommandList1_IASetVertexBuffers(cmdbuf->cmdlist, start, end - start, cmdbuf->state.vb.views);
2453 BITSET_CLEAR_RANGE(cmdbuf->state.vb.dirty, 0, MAX_VBS);
2459 if (!(cmdbuf->state.dirty & DZN_CMD_DIRTY_IB))
2462 ID3D12GraphicsCommandList1_IASetIndexBuffer(cmdbuf->cmdlist, &cmdbuf->state.ib.view);
2468 struct dzn_cmd_buffer_push_constant_state *state =
2470 &cmdbuf->state.push_constant.gfx : &cmdbuf->state.push_constant.compute;
2472 uint32_t offset = state->offset / 4;
2473 uint32_t end = ALIGN(state->end, 4) / 4;
2479 uint32_t slot = cmdbuf->state.pipeline->root.push_constant_cbv_param_idx;
2480 uint32_t *vals = state->values + offset;
2487 state->offset = 0;
2488 state->end = 0;
2494 if (cmdbuf->state.dirty & DZN_CMD_DIRTY_STENCIL_REF) {
2496 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline;
2499 cmdbuf->state.zsa.stencil_test.front.ref :
2500 cmdbuf->state.zsa.stencil_test.back.ref;
2508 if (cmdbuf->state.dirty & DZN_CMD_DIRTY_BLEND_CONSTANTS)
2510 cmdbuf->state.blend.constants);
2516 if (cmdbuf->state.dirty & DZN_CMD_DIRTY_DEPTH_BOUNDS) {
2518 cmdbuf->state.zsa.depth_bounds.min,
2519 cmdbuf->state.zsa.depth_bounds.max);
2553 cmdbuf->state.ib.view.Format = DXGI_FORMAT_R16_UINT;
2561 cmdbuf->state.ib.view.Format = DXGI_FORMAT_R32_UINT;
2564 cmdbuf->state.ib.view.SizeInBytes = *vertex_count * index_size;
2565 cmdbuf->state.ib.view.BufferLocation = ID3D12Resource_GetGPUVirtualAddress(index_buf);
2566 cmdbuf->state.dirty |= DZN_CMD_DIRTY_IB;
2594 cmdbuf->state.ib.view.BufferLocation;
2597 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline;
2604 dzn_index_type_from_dxgi_format(cmdbuf->state.ib.view.Format, false);
2625 /* We don't mess up with the driver state when executing our internal
2626 * compute shader, but we still change the D3D12 state, so let's mark
2629 cmdbuf->state.pipeline = NULL;
2630 if (cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].pipeline) {
2631 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty |=
2635 cmdbuf->state.ib.view.SizeInBytes = *index_count * 4;
2636 cmdbuf->state.ib.view.BufferLocation = ID3D12Resource_GetGPUVirtualAddress(new_index_buf);
2637 cmdbuf->state.ib.view.Format = DXGI_FORMAT_R32_UINT;
2638 cmdbuf->state.dirty |= DZN_CMD_DIRTY_IB;
2661 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty = 0;
2662 cmdbuf->state.dirty = 0;
2669 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline;
2677 uint32_t index_size = cmdbuf->state.ib.view.Format == DXGI_FORMAT_R32_UINT ? 4 : 2;
2678 uint32_t max_indices = cmdbuf->state.ib.view.SizeInBytes / index_size;
2686 cmdbuf->state.vb.views[i].SizeInBytes / cmdbuf->state.vb.views[i].StrideInBytes);
2707 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline;
2844 dzn_index_type_from_dxgi_format(cmdbuf->state.ib.view.Format, prim_restart) :
2872 cmdbuf->state.ib.view.BufferLocation);
2886 ib_view = cmdbuf->state.ib.view;
2887 cmdbuf->state.ib.view.BufferLocation = ID3D12Resource_GetGPUVirtualAddress(triangle_fan_index_buf);
2888 cmdbuf->state.ib.view.SizeInBytes = triangle_fan_index_buf_stride;
2889 cmdbuf->state.ib.view.Format = DXGI_FORMAT_R32_UINT;
2890 cmdbuf->state.dirty |= DZN_CMD_DIRTY_IB;
2898 /* We don't mess up with the driver state when executing our internal
2899 * compute shader, but we still change the D3D12 state, so let's mark
2902 cmdbuf->state.pipeline = NULL;
2903 if (cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].pipeline) {
2904 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty |=
2908 cmdbuf->state.sysvals.gfx.first_vertex = 0;
2909 cmdbuf->state.sysvals.gfx.base_instance = 0;
2910 cmdbuf->state.sysvals.gfx.is_indexed_draw = indexed;
2911 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |=
2918 cmdbuf->state.ib.view = ib_view;
2919 cmdbuf->state.dirty |= DZN_CMD_DIRTY_IB;
2951 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty = 0;
3183 if (heap != cmdbuf->state.heaps[D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV]) {
3185 cmdbuf->state.heaps[D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV] = heap;
3194 cmdbuf->state.pipeline = NULL;
3195 cmdbuf->state.dirty |= DZN_CMD_DIRTY_VIEWPORTS | DZN_CMD_DIRTY_SCISSORS;
3196 if (cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline) {
3197 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |=
3226 if (heap != cmdbuf->state.heaps[D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV]) {
3228 cmdbuf->state.heaps[D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV] = heap;
3238 cmdbuf->state.pipeline = NULL;
3239 cmdbuf->state.dirty |= DZN_CMD_DIRTY_VIEWPORTS | DZN_CMD_DIRTY_SCISSORS;
3240 if (cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline) {
3241 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |=
3282 cmdbuf->state.sysvals.compute.group_count_x = groupCountX;
3283 cmdbuf->state.sysvals.compute.group_count_y = groupCountY;
3284 cmdbuf->state.sysvals.compute.group_count_z = groupCountZ;
3285 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty |=
3378 assert(pAttachments[i].colorAttachment < cmdbuf->state.render.attachments.color_count);
3379 view = cmdbuf->state.render.attachments.colors[pAttachments[i].colorAttachment].iview;
3380 layout = cmdbuf->state.render.attachments.colors[pAttachments[i].colorAttachment].layout;
3382 if (cmdbuf->state.render.attachments.depth.iview &&
3384 view = cmdbuf->state.render.attachments.depth.iview;
3385 layout = cmdbuf->state.render.attachments.depth.layout;
3388 if (cmdbuf->state.render.attachments.stencil.iview &&
3390 assert(!view || view == cmdbuf->state.render.attachments.depth.iview);
3391 view = cmdbuf->state.render.attachments.stencil.iview;
3392 layout = cmdbuf->state.render.attachments.stencil.layout;
3520 // The render area has an impact on the scissor state.
3521 if (memcmp(&cmdbuf->state.render.area, &new_render_area, sizeof(new_render_area))) {
3522 cmdbuf->state.dirty |= DZN_CMD_DIRTY_SCISSORS;
3523 cmdbuf->state.render.area = new_render_area;
3526 cmdbuf->state.render.flags = pRenderingInfo->flags;
3527 cmdbuf->state.render.layer_count = pRenderingInfo->layerCount;
3528 cmdbuf->state.render.view_mask = pRenderingInfo->viewMask;
3533 cmdbuf->state.render.attachments.color_count = pRenderingInfo->colorAttachmentCount;
3538 cmdbuf->state.render.attachments.colors[i].iview = iview;
3539 cmdbuf->state.render.attachments.colors[i].layout = att->imageLayout;
3540 cmdbuf->state.render.attachments.colors[i].resolve.mode = att->resolveMode;
3541 cmdbuf->state.render.attachments.colors[i].resolve.iview =
3543 cmdbuf->state.render.attachments.colors[i].resolve.layout =
3545 cmdbuf->state.render.attachments.colors[i].store_op = att->storeOp;
3561 cmdbuf->state.render.attachments.depth.iview =
3563 cmdbuf->state.render.attachments.depth.layout = att->imageLayout;
3564 cmdbuf->state.render.attachments.depth.resolve.mode = att->resolveMode;
3565 cmdbuf->state.render.attachments.depth.resolve.iview =
3567 cmdbuf->state.render.attachments.depth.resolve.layout =
3569 cmdbuf->state.render.attachments.depth.store_op = att->storeOp;
3577 cmdbuf->state.render.attachments.stencil.iview =
3579 cmdbuf->state.render.attachments.stencil.layout = att->imageLayout;
3580 cmdbuf->state.render.attachments.stencil.resolve.mode = att->resolveMode;
3581 cmdbuf->state.render.attachments.stencil.resolve.iview =
3583 cmdbuf->state.render.attachments.stencil.resolve.layout =
3585 cmdbuf->state.render.attachments.stencil.store_op = att->storeOp;
3623 &cmdbuf->state.render.area);
3656 &cmdbuf->state.render.area);
3666 for (uint32_t i = 0; i < cmdbuf->state.render.attachments.color_count; i++) {
3668 &cmdbuf->state.render.attachments.colors[i],
3673 &cmdbuf->state.render.attachments.depth,
3676 &cmdbuf->state.render.attachments.stencil,
3679 memset(&cmdbuf->state.render, 0, sizeof(cmdbuf->state.render));
3690 cmdbuf->state.bindpoint[pipelineBindPoint].pipeline = pipeline;
3691 cmdbuf->state.bindpoint[pipelineBindPoint].dirty |= DZN_CMD_BINDPOINT_DIRTY_PIPELINE;
3696 memcpy(cmdbuf->state.viewports, gfx->vp.desc,
3697 gfx->vp.count * sizeof(cmdbuf->state.viewports[0]));
3698 cmdbuf->state.dirty |= DZN_CMD_DIRTY_VIEWPORTS;
3702 memcpy(cmdbuf->state.scissors, gfx->scissor.desc,
3703 gfx->scissor.count * sizeof(cmdbuf->state.scissors[0]));
3704 cmdbuf->state.dirty |= DZN_CMD_DIRTY_SCISSORS;
3708 cmdbuf->state.zsa.stencil_test.front.ref = gfx->zsa.stencil_test.front.ref;
3709 cmdbuf->state.zsa.stencil_test.back.ref = gfx->zsa.stencil_test.back.ref;
3710 cmdbuf->state.dirty |= DZN_CMD_DIRTY_STENCIL_REF;
3714 cmdbuf->state.zsa.depth_bounds.min = gfx->zsa.depth_bounds.min;
3715 cmdbuf->state.zsa.depth_bounds.max = gfx->zsa.depth_bounds.max;
3716 cmdbuf->state.dirty |= DZN_CMD_DIRTY_DEPTH_BOUNDS;
3720 memcpy(cmdbuf->state.blend.constants, gfx->blend.constants,
3721 sizeof(cmdbuf->state.blend.constants));
3722 cmdbuf->state.dirty |= DZN_CMD_DIRTY_BLEND_CONSTANTS;
3726 cmdbuf->state.vb.views[vb].StrideInBytes = gfx->vb.strides[vb];
3729 BITSET_SET_RANGE(cmdbuf->state.vb.dirty, 0, gfx->vb.count - 1);
3747 &cmdbuf->state.bindpoint[pipelineBindPoint].desc_state;
3772 cmdbuf->state.bindpoint[pipelineBindPoint].dirty |= dirty;
3788 dzn_translate_viewport(&cmdbuf->state.viewports[vp], &pViewports[i]);
3791 cmdbuf->state.sysvals.gfx.yz_flip_mask |= BITFIELD_BIT(vp + DXIL_SPIRV_Z_FLIP_SHIFT);
3793 cmdbuf->state.sysvals.gfx.yz_flip_mask &= ~BITFIELD_BIT(vp + DXIL_SPIRV_Z_FLIP_SHIFT);
3796 cmdbuf->state.sysvals.gfx.yz_flip_mask |= BITFIELD_BIT(vp);
3798 cmdbuf->state.sysvals.gfx.yz_flip_mask &= ~BITFIELD_BIT(vp);
3802 cmdbuf->state.dirty |= DZN_CMD_DIRTY_VIEWPORTS;
3803 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |=
3817 dzn_translate_rect(&cmdbuf->state.scissors[i + firstScissor], &pScissors[i]);
3820 cmdbuf->state.dirty |= DZN_CMD_DIRTY_SCISSORS;
3833 states[num_states++] = &cmdbuf->state.push_constant.gfx;
3836 states[num_states++] = &cmdbuf->state.push_constant.compute;
3856 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline;
3858 cmdbuf->state.sysvals.gfx.first_vertex = firstVertex;
3859 cmdbuf->state.sysvals.gfx.base_instance = firstInstance;
3860 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |=
3864 D3D12_INDEX_BUFFER_VIEW ib_view = cmdbuf->state.ib.view;
3871 cmdbuf->state.sysvals.gfx.is_indexed_draw = true;
3878 cmdbuf->state.ib.view = ib_view;
3879 cmdbuf->state.dirty |= DZN_CMD_DIRTY_IB;
3882 cmdbuf->state.sysvals.gfx.is_indexed_draw = false;
3900 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].pipeline;
3938 cmdbuf->state.sysvals.gfx.first_vertex = vertexOffset;
3939 cmdbuf->state.sysvals.gfx.base_instance = firstInstance;
3940 cmdbuf->state.sysvals.gfx.is_indexed_draw = true;
3941 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |=
3944 D3D12_INDEX_BUFFER_VIEW ib_view = cmdbuf->state.ib.view;
3959 cmdbuf->state.ib.view = ib_view;
3960 cmdbuf->state.dirty |= DZN_CMD_DIRTY_IB;
4038 D3D12_VERTEX_BUFFER_VIEW *vbviews = cmdbuf->state.vb.views;
4047 BITSET_SET_RANGE(cmdbuf->state.vb.dirty, firstBinding,
4060 cmdbuf->state.ib.view.BufferLocation = ID3D12Resource_GetGPUVirtualAddress(buf->res) + offset;
4061 cmdbuf->state.ib.view.SizeInBytes = buf->size - offset;
4064 cmdbuf->state.ib.view.Format = DXGI_FORMAT_R16_UINT;
4065 cmdbuf->state.pipeline_variant.ib_strip_cut = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF;
4068 cmdbuf->state.ib.view.Format = DXGI_FORMAT_R32_UINT;
4069 cmdbuf->state.pipeline_variant.ib_strip_cut = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF;
4074 cmdbuf->state.dirty |= DZN_CMD_DIRTY_IB;
4077 (const struct dzn_graphics_pipeline *)cmdbuf->state.pipeline;
4080 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |= DZN_CMD_BINDPOINT_DIRTY_PIPELINE;
4152 enum dzn_event_state state = (uintptr_t)he->data;
4153 assert(state != DZN_EVENT_STATE_RESET);
4154 flush_pipeline = state == DZN_EVENT_STATE_SET;
4194 struct dzn_cmd_buffer_query_pool_state *state =
4196 if (!state)
4200 dzn_cmd_buffer_dynbitset_clear(cmdbuf, &state->collect, query);
4212 struct dzn_cmd_buffer_query_pool_state *state =
4214 if (!state)
4217 dzn_cmd_buffer_dynbitset_set(cmdbuf, &state->collect, query);
4230 struct dzn_cmd_buffer_query_pool_state *state =
4232 if (!state)
4245 dzn_cmd_buffer_dynbitset_set(cmdbuf, &state->collect, query);
4260 struct dzn_cmd_buffer_query_pool_state *state =
4263 if (!state)
4288 dzn_cmd_buffer_dynbitset_set_range(cmdbuf, &state->reset, firstQuery, queryCount);
4289 dzn_cmd_buffer_dynbitset_clear_range(cmdbuf, &state->collect, firstQuery, queryCount);
4405 cmdbuf->state.sysvals.compute.group_count_x = 0;
4406 cmdbuf->state.sysvals.compute.group_count_y = 0;
4407 cmdbuf->state.sysvals.compute.group_count_z = 0;
4408 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty |=
4414 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].pipeline;
4464 cmdbuf->state.pipeline_variant.depth_bias.constant_factor = depthBiasConstantFactor;
4465 cmdbuf->state.pipeline_variant.depth_bias.clamp = depthBiasClamp;
4466 cmdbuf->state.pipeline_variant.depth_bias.slope_factor = depthBiasSlopeFactor;
4467 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |= DZN_CMD_BINDPOINT_DIRTY_PIPELINE;
4476 memcpy(cmdbuf->state.blend.constants, blendConstants,
4477 sizeof(cmdbuf->state.blend.constants));
4478 cmdbuf->state.dirty |= DZN_CMD_DIRTY_BLEND_CONSTANTS;
4492 cmdbuf->state.zsa.depth_bounds.min = minDepthBounds;
4493 cmdbuf->state.zsa.depth_bounds.max = maxDepthBounds;
4494 cmdbuf->state.dirty |= DZN_CMD_DIRTY_DEPTH_BOUNDS;
4506 cmdbuf->state.zsa.stencil_test.front.compare_mask = compareMask;
4507 cmdbuf->state.pipeline_variant.stencil_test.front.compare_mask = compareMask;
4511 cmdbuf->state.zsa.stencil_test.back.compare_mask = compareMask;
4512 cmdbuf->state.pipeline_variant.stencil_test.back.compare_mask = compareMask;
4515 cmdbuf->state.dirty |= DZN_CMD_DIRTY_STENCIL_COMPARE_MASK;
4516 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |= DZN_CMD_BINDPOINT_DIRTY_PIPELINE;
4527 cmdbuf->state.zsa.stencil_test.front.write_mask = writeMask;
4528 cmdbuf->state.pipeline_variant.stencil_test.front.write_mask = writeMask;
4532 cmdbuf->state.zsa.stencil_test.back.write_mask = writeMask;
4533 cmdbuf->state.pipeline_variant.stencil_test.back.write_mask = writeMask;
4536 cmdbuf->state.dirty |= DZN_CMD_DIRTY_STENCIL_WRITE_MASK;
4537 cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_GRAPHICS].dirty |= DZN_CMD_BINDPOINT_DIRTY_PIPELINE;
4548 cmdbuf->state.zsa.stencil_test.front.ref = reference;
4551 cmdbuf->state.zsa.stencil_test.back.ref = reference;
4553 cmdbuf->state.dirty |= DZN_CMD_DIRTY_STENCIL_REF;