| From 77b5f37181243bb2b471419335e3a8dbae27bc25 Mon Sep 17 00:00:00 2001 |
| From: Jason Ekstrand <jason@jlekstrand.net> |
| Date: Thu, 11 Mar 2021 13:59:12 -0600 |
| Subject: [PATCH 3/3] Stop using mos_bo_subdata |
| |
| This maps to the kernel's PWRITE ioctl but there's no real advantage in |
| using it since the first thing the kernel does is i915_gem_object_wait(). |
| We may as well do the wait in userspace and just write to it through a |
| map. We're attempting to remove PWRITE support from i915 for future |
| platforms and this prepares the media driver for the move. |
| --- |
| .../codec/ddi/media_ddi_decode_base.cpp | 9 +++----- |
| .../common/codec/ddi/media_ddi_decode_vp8.cpp | 21 ++++++------------- |
| 2 files changed, 9 insertions(+), 21 deletions(-) |
| |
| diff --git a/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp b/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp |
| index 5807066d90a8..3b8307d3ece4 100644 |
| --- a/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp |
| +++ b/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp |
| @@ -1096,13 +1096,10 @@ VAStatus DdiMediaDecode::CreateBuffer( |
| |
| if( true == buf->bCFlushReq ) |
| { |
| - mos_bo_subdata(buf->bo, buf->uiOffset, size * numElements, data); |
| - } |
| - else |
| - { |
| - status = MOS_SecureMemcpy((void *)(buf->pData + buf->uiOffset), size * numElements, data, size * numElements); |
| - DDI_CHK_CONDITION((status != MOS_STATUS_SUCCESS), "DDI:Failed to copy buffer data!", VA_STATUS_ERROR_OPERATION_FAILED); |
| + mos_bo_wait_rendering(buf->bo); |
| } |
| + status = MOS_SecureMemcpy((void *)(buf->pData + buf->uiOffset), size * numElements, data, size * numElements); |
| + DDI_CHK_CONDITION((status != MOS_STATUS_SUCCESS), "DDI:Failed to copy buffer data!", VA_STATUS_ERROR_OPERATION_FAILED); |
| return va; |
| |
| CleanUpandReturn: |
| diff --git a/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp b/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp |
| index 02c677ae2add..72891d584334 100644 |
| --- a/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp |
| +++ b/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp |
| @@ -264,21 +264,12 @@ VAStatus DdiDecodeVP8::ParseProbabilityData( |
| { |
| if (vp8ProbDataBuff->pData && probInputBuf) |
| { |
| - MOS_LINUX_BO *boDes = nullptr; |
| - boDes = vp8ProbDataBuff->bo; |
| - |
| - mos_bo_wait_rendering(boDes); |
| - if (0 == mos_bo_subdata(boDes, |
| - 0, |
| - sizeof(CODECHAL_VP8_COEFFPROB_DATA), |
| - probInputBuf)) |
| - { |
| - return VA_STATUS_SUCCESS; |
| - } |
| - else |
| - { |
| - return VA_STATUS_ERROR_INVALID_PARAMETER; |
| - } |
| + mos_bo_wait_rendering(vp8ProbDataBuff->bo); |
| + MOS_SecureMemcpy(vp8ProbDataBuff->pData, |
| + sizeof(CODECHAL_VP8_COEFFPROB_DATA), |
| + probInputBuf, |
| + sizeof(CODECHAL_VP8_COEFFPROB_DATA)); |
| + return VA_STATUS_SUCCESS; |
| } |
| else |
| { |
| -- |
| 2.29.0 |
| |