summaryrefslogtreecommitdiff
path: root/tests/i915/gem_pxp.c
AgeCommit message (Collapse)Author
2022-06-30lib/i915: wire up optional flags for gem_create_extMatthew Auld
For now limit to direct callers. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2021-10-08lib: Typechecking minmaxChris Wilson
Add typechecking to the min/max macros and make their locals truly unique-ish to reduce the risk of shadowing. v2: small bug fix, write also height coordinate on rotation test. (jheikkil) v3: Fix up a couple of other max/max_t instances (Ashutosh) Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Chris Wilson <chris.p.wilson@intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
2021-10-06tests/i915_pxp: Use ioctl_wrapper for DRM_IOCTL_PRIME_HANDLE_TO_FDAlan Previn
Replace private helper with call to ioctl_wrapper for DRM_IOCTL_PRIME_HANDLE_TO_FD. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915_pxp: CRC validation for display tests.Karthik B S
Added subtests to validate pxp using CRC validation. Signed-off-by: Karthik B S <karthik.b.s@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Verify protected surfaces are dma buffer sharableAlan Previn
Verify we can export a protected surface from protected context A into protected context B (with different client driver handles) and protected rendering is successful even after prior file handle is closed (i.e. pxp specific refcounting works). Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Verify execution behavior with stale PXP assets through ↵Alan Previn
suspend-resume Add a subtest to repeat the same previous three scenarios when attempting to execute work with either stale PXP contexts or buffers but this time trigger the teardown event via an S3 suspend-resume power state cycle. NOTE: The end-to-end architecture requirement includes that any break in the links of the PXP sessions needs to trigger a full teardown and the application needs to be made aware of that allowing it to re-establish the end-to-end pipeline of buffers, contexts and renders again if it chooses to. This stricter behavior targets only contexts created with PXP enabled. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Verify execbuf ok with stale PXP buf in opt-out useAlan Previn
Add a check to verify that reusing a stale protected buffer in a gem_execbuff call, but using a regular (not- protected) context will succeed after a teardown event. Trigger the teardown via the pxp invalidation debugfs that simulates a HW teardown IRQ. This ensures that user space applications that choose not to opt-in for strict PXP teardown awareness (by using a regular context) won't suffer gem_execbuff failures if a protected buffer was among the assets used in any of its rendering operations. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Verify execbuf fails with stale PXP buffer after teardownAlan Previn
Add a check to verify that reusing a stale protected buffer in a gem_execbuff (with a protected context) after a teardown event fails with -ENOEXEC error. Trigger the teardown via the pxp invalidation debugfs that simulates a HW teardown IRQ. NOTE: The end-to-end architecture requirement includes that any break in the links of the PXP sessions needs to trigger a full teardown and the application needs to be made aware of that allowing it to re-establish the end-to-end pipeline of buffers, contexts and renders again if it chooses to. This stricter behavior targets only contexts created with PXP enabled. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Verify execbuf fails with stale PXP context after teardownAlan Previn
Add a subtest to verify that reusing a stale protected context in a gem_execbuff after a teardown fails with -EIO error because it's banned. Trigger the teardown via the pxp invalidation debugfs that simulates a HW teardown IRQ. NOTE: The end-to-end architecture requirement includes that any break in the links of the PXP sessions needs to trigger a full teardown and the application needs to be made aware of that allowing it to re-establish the end-to-end pipeline of buffers, contexts and renders again if it chooses to. This stricter behavior targets only contexts created with PXP enabled. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Verify PXP teardown occurred through suspend-resumeAlan Previn
During a suspend-resume cycle, the driver shall ensure the PXP session and keys are torn down and re-established. Verify that key change did occur by repeating the 3d rendercopy operation before and after the suspend-resume cycle and ensuring the encrypted output is different. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Add test where both src and dest are protectedAlan Previn
When both the source and destination surfaces are protected, the destination pixel result of the 3d copy operation would be the same as the source. By appending this test case to the end of the prior test (raw-src to protected-dest) and reusing the previous' test destination as the current source, we can prove that new-source was decrypted properly as we would see the difference in results: repeating the same render operation but with a src buffer that is protected in this case yields matching (but still encrypted) output rendered pixels. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Add subtest to copy raw source to protected destAlan Previn
Add subtest to 3d-copy raw source buffer (with known readible content) to a destination buffer marked as protected with a protected session using default session keys. The destination buffer is verified to be different from the source (when read via CPU) because its encrypted. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Perform a regular 3d copy as a control checkpointAlan Previn
As a control checkpoint, allocate buffers to be used as texture and render target in the 3d engine for a regular src to dest copy blit and verify buffer pixels. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-10-06tests/i915/gem_pxp: Add basic PXP testing of buffer and context allocAlan Previn
Test PXP capability support as well as the allocation of protected buffers and protected contexts. Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>