Browse Source
Merge pull request #3816 from ReinUsesLisp/vk-rasterizer-enable
vk_graphics_pipeline: Implement rasterizer_enable on Vulkan
pull/15/merge
bunnei
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
3 additions and
1 deletions
-
src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
-
src/video_core/renderer_vulkan/fixed_pipeline_state.h
-
src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
|
|
|
@ -93,6 +93,7 @@ void FixedPipelineState::Rasterizer::Fill(const Maxwell& regs) noexcept { |
|
|
|
tessellation_clockwise.Assign(regs.tess_mode.cw.Value()); |
|
|
|
logic_op_enable.Assign(regs.logic_op.enable != 0 ? 1 : 0); |
|
|
|
logic_op.Assign(PackLogicOp(regs.logic_op.operation)); |
|
|
|
rasterize_enable.Assign(regs.rasterize_enable != 0 ? 1 : 0); |
|
|
|
std::memcpy(&point_size, ®s.point_size, sizeof(point_size)); // TODO: C++20 std::bit_cast
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -164,6 +164,7 @@ struct FixedPipelineState { |
|
|
|
BitField<23, 1, u32> tessellation_clockwise; |
|
|
|
BitField<24, 1, u32> logic_op_enable; |
|
|
|
BitField<25, 4, u32> logic_op; |
|
|
|
BitField<29, 1, u32> rasterize_enable; |
|
|
|
}; |
|
|
|
|
|
|
|
// TODO(Rodrigo): Move this to push constants |
|
|
|
|
|
|
|
@ -281,7 +281,7 @@ vk::Pipeline VKGraphicsPipeline::CreatePipeline(const RenderPassParams& renderpa |
|
|
|
rasterization_ci.pNext = nullptr; |
|
|
|
rasterization_ci.flags = 0; |
|
|
|
rasterization_ci.depthClampEnable = rs.depth_clamp_disabled == 0 ? VK_TRUE : VK_FALSE; |
|
|
|
rasterization_ci.rasterizerDiscardEnable = VK_FALSE; |
|
|
|
rasterization_ci.rasterizerDiscardEnable = rs.rasterize_enable == 0 ? VK_TRUE : VK_FALSE; |
|
|
|
rasterization_ci.polygonMode = VK_POLYGON_MODE_FILL; |
|
|
|
rasterization_ci.cullMode = |
|
|
|
rs.cull_enable ? MaxwellToVK::CullFace(rs.CullFace()) : VK_CULL_MODE_NONE; |
|
|
|
|