Skip to content

Commit 92ca412

Browse files
committed
trytrytry
1 parent d92e2db commit 92ca412

File tree

4 files changed

+11
-4
lines changed

4 files changed

+11
-4
lines changed

src/video_core/amdgpu/liverpool.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
632632
}
633633

634634
const u32 num_bytes = dma_data->NumBytes();
635+
LOG_WARNING(Render_Vulkan, "Graphics DMA packet size = {}", num_bytes);
635636
if (dma_data->src_sel == DmaDataSrc::Data && dma_data->dst_sel == DmaDataDst::Gds) {
636637
rasterizer->InlineData(dma_data->dst_addr_lo, &dma_data->data, sizeof(u32),
637638
true);
@@ -851,6 +852,7 @@ Liverpool::Task Liverpool::ProcessCompute(const u32* acb, u32 acb_dwords, u32 vq
851852
}
852853

853854
const u32 num_bytes = dma_data->NumBytes();
855+
LOG_WARNING(Render_Vulkan, "Compute DMA packet size = {}", num_bytes);
854856
if (dma_data->src_sel == DmaDataSrc::Data && dma_data->dst_sel == DmaDataDst::Gds) {
855857
rasterizer->InlineData(dma_data->dst_addr_lo, &dma_data->data, sizeof(u32), true);
856858
} else if (dma_data->src_sel == DmaDataSrc::Memory &&

src/video_core/buffer_cache/buffer_cache.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ void BufferCache::InvalidateMemory(VAddr device_addr, u64 size) {
4747
return;
4848
}
4949
if (memory_tracker->IsRegionGpuModified(device_addr, size)) {
50-
ReadMemory(device_addr, size);
50+
//ReadMemory(device_addr, size);
51+
memory_tracker->UnmarkRegionAsGpuModified(device_addr, size);
5152
}
5253
memory_tracker->MarkRegionAsCpuModified(device_addr, size);
5354
}

src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ bool PipelineCache::RefreshGraphicsKey() {
414414

415415
switch (regs.stage_enable.raw) {
416416
case Liverpool::ShaderStageEnable::VgtStages::EsGs: {
417+
return false;
417418
if (!instance.IsGeometryStageSupported() || !IsGsFeaturesSupported()) {
418419
return false;
419420
}

src/video_core/renderer_vulkan/vk_rasterizer.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
namespace Vulkan {
2121

22+
static bool stencil_clear = false;
2223
static Shader::PushData MakeUserData(const AmdGpu::Liverpool::Regs& regs) {
2324
Shader::PushData push_data{};
2425
push_data.step0 = regs.vgt_instance_step_rate_0;
@@ -188,10 +189,12 @@ RenderState Rasterizer::PrepareRenderState(u32 mrt_mask) {
188189
image.binding.is_target = 1u;
189190

190191
const auto slice = image_view.info.range.base.layer;
191-
const bool is_depth_clear = regs.depth_render_control.depth_clear_enable ||
192-
texture_cache.IsMetaCleared(htile_address, slice);
193-
const bool is_stencil_clear = regs.depth_render_control.stencil_clear_enable;
192+
stencil_clear = true;
193+
const bool is_depth_clear = (regs.depth_render_control.depth_clear_enable ||
194+
texture_cache.IsMetaCleared(htile_address, slice)) && !stencil_clear;
195+
const bool is_stencil_clear = regs.depth_render_control.stencil_clear_enable || stencil_clear;
194196
ASSERT(desc.view_info.range.extent.levels == 1);
197+
stencil_clear = false;
195198

196199
state.width = std::min<u32>(state.width, image.info.size.width);
197200
state.height = std::min<u32>(state.height, image.info.size.height);

0 commit comments

Comments
 (0)