Age | Commit message (Collapse) | Author |
|
This begins the process of separating the dynamic data from the
static data, (still to move are the surface state and binding
table objects). The new dynamic_state is stored in a buffer
object, so this patch restores the buffer-object-for-vertex-buffer
functionality originally in commit 1abf4d3a7a and later reverted
in 5c9a62a29f.
A notable difference is that this time we actually do use
check_aperture_space to ensure things will fit, (assuming
there's a non-empty implementation under that).
|
|
Since we can't bang on registers directly in that case.
|
|
|
|
This doesn't make any difference, but it's cleaner to have
each function follow the same idiom for obtaining these pointers.
|
|
More cleanup here, and again no functional change.
|
|
This follows naturally from the structure rename.
Also we make things less muddled by having this function
actually accept a pointer to a gen4_static_state_t rather
than a gen4_state_t, (and then fetching the desired pointer
out from that).
Again, no intended change in functionality here.
|
|
It doesn't contain only static data yet, but it will soon, so
this renaming prepares for that. Also, this helps make things
more clear between gen4_render_state_t and gen4_state_t which
were muddled before, (particularly because the corresponding
identifiers were render_state and card_state). The card_state
identifier is now known as static_state which should be less
confusing.
This change is strictly search-and-replace with no functional
changes.
|
|
We simply forgot to add this to .gitignore when it was created.
|
|
Should help avoid unpleasantness.
|
|
|
|
|
|
Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Keith Packard <keithp@keithp.com>
|
|
Vblank in the kernel is far simpler if it deals with pipes instead of
planes, so we're changing both user and kernel side. This is the user mode
side. This fixes both i830_crtc_dpms and i830PipeSetBase, the two functions
which copy geometry from the crtc to the sarea.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
This tracks whether the last command in each batch is an MI_FLUSH command
and avoids appending another MI_FLUSH in the non-GEM cases.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
My checks for DRM enabled were a bit too extensive; drmCommandWriteRead is
part of libdrm which the driver is always linked against. Only the symbols
in the DRI module need to be checked here.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
I was testing the behaviour of the XAA-based DRI buffer drawing code for
tiled buffers and accidentally left I830DRIInitBuffers disabled.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
GEM requires the DRI extension module currently, so make sure that is loaded
(by checking for the DRIQueryVersion symbol) before trying to call it. This
allows the server to start with the DRI extension disabled.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
When moving or clearing the extra buffer contents associated with DRI
windows, the XAA code needs to see which buffer is being manipulated in the
Setup functions to program the tiling values correctly. Calling
I830SelectBuffer and not then calling I830Setup... would result in mis-tiled
rendering.
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
|
|
This may well explain why XAA never worked well on tiled front buffers;
tiled buffers require a different pitch programming on 965 than non-tiled
buffers, in dwords rather than bytes.
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
|
|
|
|
|
|
SDVO on Mac mini trys to get EDID from CRT port, which
failed with recent DVI-I change.
|
|
This snuck in with the UXA rename commit.
|
|
Implement DRI2CopyRegion and provide drm device filename to DRI2 module.
|
|
|
|
On the GM45 we were assuming too little stolen memory (mostly harmless,
except when it wasn't, until the AGP fix), and on the G45 we were assuming too
much stolen memory, which was quite harmful when we touched the page that
didn't get mapped.
Future stolen memory accounting should use src/reg_dumper/intel_gtt before and
after enabling AGP on the chipset to confirm that only the GTT entries not
mapped to stolen are replaced, and that all of the unmapped GTT entries are
replaced with the constant scratch page.
|
|
|
|
Reported by Tomas Carnecky on IRC
|
|
Introduced in patch for DVI-I CRT probe, if no EDID
CRT monitor is connected, origin code destroys default
DDC bus which causes crash in later get_modes call.
Change it to setup and destroy DDC bus as needed in
get_modes, so we always reprobe and get current state.
|
|
In non-DRM mode, the driver waits for the hardware by checking the ring
pointers; when the ring is empty, it assumes the hardware is idle. However,
the hardware updates the ring pointers before executing a command, so if the
MI_BATCH_BUFFER_START is the last command in the ring, the driver will think
the hardware is idle while it may still be processing the contents of the
batch buffer. Placing NOOPs after the BATCH_BUFFER_START allows the driver
to know that the hardware has completed the batch buffer.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
The ring commands to insert a batch buffer to the ring in i830 form were not
terminated by a call to ADVANCE_LP_RING(). This surely would have caused
chaos.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
We haven't found a way to make FBC work reliably with GM965 yet,
(it often fails to notice CPU writes). This appears to be a
specific problem with this device, (as we haven't gotten similar
bug reports for subsequent devices such as GM45). So FBC is
now disabled by default for GM965 but can still be enabled with
the FrameBufferCompression option for experimenting/debugging.
This resolves bug #16257:
[GM965 EXA] Frame-buffer compression broken for CPU writes (XPutImage)
https://bugs.freedesktop.org/show_bug.cgi?id=16257
|
|
BIOS already says no integrated TV, and this quirk blocks TV
on R61i which has the same subdevice id as T61.
|
|
i830_bios_init() is called too late after output init, which
makes bios data mostly useless, and caused all TV init fail as
tv_present flag is not set.
|
|
Broken by 3a4151b69daa478ac6edf042d604ee41e8429c0d
|
|
This disables UXA and DRM modesetting pre-1.5, due to privates handling
issues.
|
|
The server's pci_device structure ends up conflicting with libpciaccess's.
Just don't include the server structure for this non-server tool.
|
|
|
|
ssh://git.freedesktop.org/git/xorg/driver/xf86-video-intel
|
|
Document a few more VBT structures and comment on VBIOS communication a
bit. There should be enough there now for a sufficiently motivated
developer to start implementing support for hotkeys and other features
on pre-IGD OpRegion machines.
|
|
It's very convenient that the hardware supports this non-default
mode since it's exactly what is specified by the Render extension.
This provides a more efficient means of fixing bug #16820:
[EXA] Composition result in black for areas outside of source-surface bo
https://bugs.freedesktop.org/show_bug.cgi?id=16820
without the software fallback we had in the earlier fix,
(commit 76c9ece36e6400fd10f364ee330faea470e2da64 ).
|
|
This is consistent with the documentation, (and just plain makes
more sense).
|
|
This reverts commit 76c9ece36e6400fd10f364ee330faea470e2da64.
We've learned a new technique that should let us avoid this fallback
to software. See following commit.
|
|
|
|
We wish it wouldn't, but the hardware ignores the alpha in the
BorderColor we set when the source picture format has no alpha
in it, (and it uses alpha of 1.0 where we want 0.0). For now,
fallback for these cases. This gives a correct result, but
obviously is not as fast as we would like.
This fixes bug #16820:
[EXA] Composition result in black for areas outside of source-surface bounds
https://bugs.freedesktop.org/show_bug.cgi?id=16820
|
|
I required the following patch on top of this to work around libpciaccess
brokenness. libpciaccess reports 0 rom size if there's no rom resource,
even if the rom file exists in sysfs.
|
|
libpciaccess (and the old X server PCI code as well) provides a function to
get the ROM contents. Code to use that was already present in the driver and
used if the INT10 function failed. Skip the INT10 and just use libpciaccess
as that eliminates several module loads and scary use of vm86.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
Eric informed me that the repeat field exists only for backwards
compatibility with old drivers that weren't prepared for values
other than 0 or 1 here. Since we are, we can just ignore that
field and examine only repeatType. So the code's a (tiny) bit
simpler this way.
|