Age | Commit message (Collapse) | Author |
|
Ideally, the display manager will start the X server again, and everything
will be fine and dandy. But in the worst case, at least we won't hit the
hardware behind the KMS driver's back.
(This change intentionally makes (ab)use of the fact that Bool is defined as
int).
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
|
|
It's not necessary: If the top/left edge was rounded down, this will be
compensated by the subtraction.
Worse, if the original source width/height is odd, rounding up may result in
reading past the end of the source data.
Fixes http://bugs.debian.org/637258 .
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
|
|
|
|
See https://bugs.freedesktop.org/show_bug.cgi?id=39696 .
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
|
|
On r5xx+, vline is relative to to the viewport, not
the scanlines. Based on initial patch and investigation
from Herbert Pötzl (Bertl) on IRC.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
|
If multiple drawables are doing page flipping, the global drmmode
structure can't be used to keep per swap information. For example
flip_count can increase prematurely due to another swap request,
and then the previous swap request never gets completed, leading to a
stuck client. Move the relevant pieces of data to a strucuture that
gets allocated once per swap request and shared by all involved CRTCs.
Signed-off-by: Ville Syrjala <syrjala@sci.fi>
|
|
Buffer exchange assumes that the front buffer pixmap and name
information is accurate. That may not be the case eg. if the window
has been (un)redirected since the buffer was created.
Signed-off-by: Ville Syrjala <syrjala@sci.fi>
|
|
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
|
|
|
Avoids rendering problems when compute changes this reg.
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=39119
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
The field is encoded.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Reported-by: Nils Wallménius <nils.wallmenius@gmail.com>
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Base alignment may be 256B or 512B depending on the group
size. Also need to check against front size for virtualX.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Currently only 1D tiling as 2D tiling still has some corner
cases to fix up.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
- KMS only
- Includes full EXA/Xv support
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
|
|
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Needs a proper workaround for a hw bug.
This reverts commit b77d374b0d11f48c33cfffdb4157c4ec4b05ea15.
|
|
|
|
wasted a lot of time getting to this.
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
changed in e3145801b80fd4be4cf770128876e86e89bda66f
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Main differences with evergreen:
- 4-way rather than 5-way
- END_OF_PROGRAM bit removed from CF istructions, use
CF_INST_END instead.
- MEGA_FETCH* fields removed from VTX commands
- no more VC, all fetches go through the TC
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
The rest of the state functions can be shared
with evergreen. I've noted where there are
differences.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Just fallbacks for now.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Pointed out by clang:
../../src/radeon_crtc.c:242:18: error: comparison of unsigned expression < 0 is always false [-Werror,-Wtautological-compare]
error = error < 0 ? 0xffffffff : error;
~~~~~ ^ ~
If a UMS regression is bisected to this commit, the assignment should probably
just be removed, as it's a no-op in the current form.
|
|
Pointed out by clang:
../../src/drmmode_display.c:1023:30: error: use of logical && with constant operand; switch to bitwise & or remove constant [-Werror,-Wconstant-logical-operand]
if (props && (props->flags && DRM_MODE_PROP_ENUM)) {
^ ~~~~~~~~~~~~~~~~~~
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
|
|
improvements to high-crtc handling done in
f0b7d7b449cc77bb2b281d81108507f8bc2e6018 introduced a bug that caused
the populate_vbl_request_type to never use the high-crtc field even
when it should. The reason is that the offending patch put the code
under #ifdef DRM_VBLANK_HIGH_CRTC_MASK which is not visible outside the
enum type, so #else was always taken in compilation type. This patch
fixes it by basing #ifdef on (pre-processor visible)
DRM_VBLANK_HIGH_CRTC_SHIFT constant
Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Fusion had a bug setting up the VM on earlier kernels so we need to work
around that and only enable accel on a new enough kernel.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
This avoids calling into the kernel for each bo in the accel
code. This is a follow on to:
cc7d1fa39da40a532fcdbe6c7924ca47a879e66a
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Ported from the equivalent fix in Mesa.
|
|
Calling into the kernel every time is quite expensive, and nobody else should
ever change the tiling flags.
There's still more to do along the same lines for >= R6xx.
|
|
* Fix build against libdrm that doesn't define *_VBLANK_HIGH_CRTC*.
* If we have more than two CRTCs but can't use DRM_VBLANK_HIGH_CRTC_MASK, don't
enable scheduling in the first place rather than relying on
DRM_VBLANK_SECONDARY magically doing something sensible for higher CRTCs.
* Only set up client state tracking when scheduling is enabled.
* Only declare pRADEONEnt when it's needed, and break long lines.
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Hi Alex,
Enclosed is a revised version of two patches sent on Mar 18 and Mar 22,
respectively. Details summarized in these two threads:
http://lists.freedesktop.org/archives/dri-devel/2011-March/009463.html
http://lists.freedesktop.org/archives/dri-devel/2011-March/009582.html
This patch reconciles the DDX with the change in libdrm sent to this list
earlier today. Specifically, it refers to a symbol that has been renamed
from DRM_CAP_HIGH_CRTC to DRM_CAP_VBLANK_HIGH_CRTC. It *supersedes* the
previous patch (i.e. apply it to the master branch as it exists at the
time of this writing, not as an incremental patch to the one sent previously).
Regards,
Ilija
Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com>
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|