summaryrefslogtreecommitdiff
path: root/platformnv.h
diff options
context:
space:
mode:
Diffstat (limited to 'platformnv.h')
-rw-r--r--platformnv.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/platformnv.h b/platformnv.h
index 652409b..a9e5d39 100644
--- a/platformnv.h
+++ b/platformnv.h
@@ -19,6 +19,7 @@
#include "drmresources.h"
#include "platform.h"
+#include "platformdrmgeneric.h"
#include <stdatomic.h>
@@ -53,6 +54,23 @@ class NvImporter : public Importer {
const gralloc_module_t *gralloc_;
};
+
+// This stage looks for any layers that contain transformed protected content
+// and puts it in the primary plane since Tegra doesn't support planar rotation
+// on the overlay planes.
+//
+// There are two caveats to this approach: 1- Protected content isn't
+// necessarily planar, but it's usually a safe bet, and 2- This doesn't catch
+// non-protected planar content. If we wanted to fix this, we'd need to import
+// the buffer in this stage and peek at it's format. The overhead of doing this
+// doesn't seem worth it since we'll end up displaying the right thing in both
+// cases anyways.
+class PlanStageProtectedRotated : public Planner::PlanStage {
+ public:
+ int ProvisionPlanes(std::vector<DrmCompositionPlane> *composition,
+ std::map<size_t, DrmHwcLayer *> &layers, DrmCrtc *crtc,
+ std::vector<DrmPlane *> *planes);
+};
}
#endif