Переглянути джерело

Merge pull request #7636 from vonchenplus/buffer_queue_query

core:hle:service:nvflinger Implement few type in bufferqueue query method
bunnei 4 роки тому
батько
коміт
afb06b1495

+ 4 - 0
src/core/hle/service/nvflinger/buffer_queue.cpp

@@ -186,6 +186,10 @@ u32 BufferQueue::Query(QueryType type) {
     case QueryType::NativeWindowWidth:
     case QueryType::NativeWindowHeight:
         break;
+    case QueryType::NativeWindowMinUndequeuedBuffers:
+        return 0;
+    case QueryType::NativeWindowConsumerUsageBits:
+        return 0;
     }
     UNIMPLEMENTED_MSG("Unimplemented query type={}", type);
     return 0;

+ 5 - 0
src/core/hle/service/nvflinger/buffer_queue.h

@@ -57,6 +57,11 @@ public:
         NativeWindowWidth = 0,
         NativeWindowHeight = 1,
         NativeWindowFormat = 2,
+        /// The minimum number of buffers that must remain un-dequeued after a buffer has been
+        /// queued
+        NativeWindowMinUndequeuedBuffers = 3,
+        /// The consumer gralloc usage bits currently set by the consumer
+        NativeWindowConsumerUsageBits = 10,
     };
 
     explicit BufferQueue(Kernel::KernelCore& kernel, u32 id_, u64 layer_id_,

+ 0 - 3
src/core/hle/service/nvflinger/nvflinger.cpp

@@ -100,9 +100,6 @@ std::optional<u64> NVFlinger::OpenDisplay(std::string_view name) {
 
     LOG_DEBUG(Service, "Opening \"{}\" display", name);
 
-    // TODO(Subv): Currently we only support the Default display.
-    ASSERT(name == "Default");
-
     const auto itr =
         std::find_if(displays.begin(), displays.end(),
                      [&](const VI::Display& display) { return display.GetName() == name; });

+ 0 - 1
src/video_core/gpu.cpp

@@ -17,7 +17,6 @@
 #include "core/frontend/emu_window.h"
 #include "core/hardware_interrupt_manager.h"
 #include "core/hle/service/nvdrv/nvdata.h"
-#include "core/hle/service/nvflinger/buffer_queue.h"
 #include "core/perf_stats.h"
 #include "video_core/cdma_pusher.h"
 #include "video_core/dma_pusher.h"