cudev: fix 1D error introduced in PR 3378 #3418
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes issue #3412 returning incorrect results for single
GpuMat
's with a single row, which was a result of an error in #3378.Unfortunatley because
GpuMat
's with a single row or column are allocated withcudaMalloc
and notcudaMallocPitch
and 2D texture objects require pitched memory this PR introduces extra staging memory, when the row/col dimension is 1. This is a quick fix for the issue which only introduces extra overhead for single dimensionGpuMat
's who's use should not be that common.A "better" fix would be to rework the
TexturePtr
class so thatstaticly dispatches a call to
tex1Dfetch
when either x or y is 1, but this will be a more significant change.Dependant on opencv/opencv#23126
Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.