Update Intel HD patch.
This commit is contained in:
parent
2cc178ff89
commit
e6e6791a26
1 changed files with 16 additions and 11 deletions
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2013 The Chromium Authors. All rights reserved.
|
// Copyright 2021 The Chromium Authors and Alex313031. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
//
|
//
|
||||||
|
@ -46,6 +46,10 @@ class NativePixmapDmaBuf;
|
||||||
class Rect;
|
class Rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define MAYBE_ASSERT_ACQUIRED(lock) \
|
||||||
|
if (lock) \
|
||||||
|
lock->AssertAcquired()
|
||||||
|
|
||||||
namespace media {
|
namespace media {
|
||||||
constexpr unsigned int kInvalidVaRtFormat = 0u;
|
constexpr unsigned int kInvalidVaRtFormat = 0u;
|
||||||
|
|
||||||
|
@ -93,12 +97,15 @@ enum class VAImplementation {
|
||||||
};
|
};
|
||||||
|
|
||||||
// This class handles VA-API calls and ensures proper locking of VA-API calls
|
// This class handles VA-API calls and ensures proper locking of VA-API calls
|
||||||
// to libva, the userspace shim to the HW codec driver. libva is not
|
// to libva, the userspace shim to the HW codec driver. The thread safety of
|
||||||
// thread-safe, so we have to perform locking ourselves. This class is fully
|
// libva depends on the backend. If the backend is not thread-safe, we need to
|
||||||
|
// maintain a global lock that guards all libva calls. This class is fully
|
||||||
// synchronous and its constructor, all of its methods, and its destructor must
|
// synchronous and its constructor, all of its methods, and its destructor must
|
||||||
// be called on the same sequence. These methods may wait on the |va_lock_|
|
// be called on the same sequence. These methods may wait on the |va_lock_|
|
||||||
// which guards libva calls across all VaapiWrapper instances and other libva
|
// which guards libva calls across all VaapiWrapper instances and other libva
|
||||||
// call sites.
|
// call sites. If the backend is known to be thread safe and
|
||||||
|
// |enforce_sequence_affinity_| is true when the |kGlobalVaapiLock| flag is
|
||||||
|
// disabled, |va_lock_| will be null and won't guard any libva calls.
|
||||||
//
|
//
|
||||||
// This class is responsible for managing VAAPI connection, contexts and state.
|
// This class is responsible for managing VAAPI connection, contexts and state.
|
||||||
// It is also responsible for managing and freeing VABuffers (not VASurfaces),
|
// It is also responsible for managing and freeing VABuffers (not VASurfaces),
|
||||||
|
@ -479,12 +486,10 @@ class MEDIA_GPU_EXPORT VaapiWrapper
|
||||||
// downloaded will be returned in |coded_data_size|. |sync_surface_id| will
|
// downloaded will be returned in |coded_data_size|. |sync_surface_id| will
|
||||||
// be used as a sync point, i.e. it will have to become idle before starting
|
// be used as a sync point, i.e. it will have to become idle before starting
|
||||||
// the download. |sync_surface_id| should be the source surface passed
|
// the download. |sync_surface_id| should be the source surface passed
|
||||||
// to the encode job. |sync_surface_id| will be nullopt when it has already
|
// to the encode job. Returns false if it fails for any reason. For example,
|
||||||
// been synced in GetEncodedChunkSize(). In the case vaSyncSurface()
|
// the linear size of the resulted encoded frame is larger than |target_size|.
|
||||||
// is not executed. Returns false if it fails for any reason. For example, the
|
|
||||||
// linear size of the resulted encoded frame is larger than |target_size|.
|
|
||||||
virtual bool DownloadFromVABuffer(VABufferID buffer_id,
|
virtual bool DownloadFromVABuffer(VABufferID buffer_id,
|
||||||
absl::optional<VASurfaceID> sync_surface_id,
|
VASurfaceID sync_surface_id,
|
||||||
uint8_t* target_ptr,
|
uint8_t* target_ptr,
|
||||||
size_t target_size,
|
size_t target_size,
|
||||||
size_t* coded_data_size) WARN_UNUSED_RESULT;
|
size_t* coded_data_size) WARN_UNUSED_RESULT;
|
||||||
|
@ -621,8 +626,8 @@ class MEDIA_GPU_EXPORT VaapiWrapper
|
||||||
const bool enforce_sequence_affinity_;
|
const bool enforce_sequence_affinity_;
|
||||||
base::SequenceCheckerImpl sequence_checker_;
|
base::SequenceCheckerImpl sequence_checker_;
|
||||||
|
|
||||||
// Pointer to VADisplayState's member |va_lock_|. Guaranteed to be valid for
|
// If using global VA lock, this is a pointer to VADisplayState's member
|
||||||
// the lifetime of VaapiWrapper.
|
// |va_lock_|. Guaranteed to be valid for the lifetime of VaapiWrapper.
|
||||||
base::Lock* va_lock_;
|
base::Lock* va_lock_;
|
||||||
|
|
||||||
// VA handles.
|
// VA handles.
|
||||||
|
|
Loading…
Reference in a new issue