Giter VIP home page Giter VIP logo

gfx-drm's Introduction

This is the "graphics/DRM" gate, in which we build the
DRM kernel modules and related DRM libraries.


Introduction:

DRM stands for Direct Rendering Manager, which is a collection of
kernel modules and libraries that allow programs like the Xorg
server to operate hardware-accelerated graphics cards.  This
software currently supports Intel (R) integrated graphics devices
with hardware acceleration, video memory management, Graphics
Execution Manager (GEM), and kernel modesetting (KMS).


How to build:

Clone this repo. onto an OpenIndiana or similar build system
with the "build-essential" packages installed, then:
	cd (top of clone)
	make install
	make package


Overview:

The major kernel components are:

	usr/src/uts/intel/io/i915	i915 driver
	usr/src/uts/common/io/drm/	DRM "misc" support
	usr/src/uts/intel/io/agpmaster	AGP master support
	usr/src/uts/intel/io/agpgart	AGP GART, AGP target

	Dependendencies:
		i915 -> drm
		drm -> agpmaster, gfx_private

The user-level libraries are:

	usr/src/lib/libdrm/		DRM driver
	usr/src/lib/libdrm_*		H/W-specific DRM support
	usr/src/lib/libkms		Kernel Mode Setting support

Note that the source for those libraries is EXTERNAL, and
NOT checked into this gate.  At build time, the library
sources are downloaded from:
	http://dri.freedesktop.org/libdrm/
and then unpacked and patched under:
	usr/src/common/libdrm/

That makes this gate a little unusual, sort of a "hybrid"
between how illumos-gate does things and how the "userland"
gate does things.  There are good reasons for this.

The kernel code is very much operaging-system-specific,
and therefore can not simply track some "upstream" like
the user-level library code can.  It's also a little
tricky to build kernel code "correctly", which is why
the kernel build parts of this gate are based on the
"ON skeleton" gate:  https://github.com/gwr/on-skel

The user-level libraries here are built with minimal
changes relatative to the upstream, and therefore can
use a strategy similar to that in the "userland" gate:
	https://github.com/OpenIndiana/oi-userland


Development and testing:

If you find you need to make changes to library code
(such as when updating to a new version) the easiest
way is to save a copy of the unpacked library source
before patching (use "make unpack"), then go ahead
and edit files as needed, and once you're happy with
the changes use "diff -u saved-lib edited-lib" to
update the files in the patches directory.  Use:
  usr/src/common/libdrm/Check-patches
to check that your patches are in sync with edits.

When doing incremental work in the gate, i.e. fixing
compilation errors, it's handy to run an editor in a
"bldenv" environment, as follows:
	ksh93 tools/bldenv -d myenv.sh

That gets you a new shell, in which you can run an
emacs if you like "meta-x compile", or whatever.
Just cd to where the top-level make had problems
and run make.  Then fix bugs, open pull requests.

Please run the tests before submitting pull requests.
They're installed as /opt/drm-test/*

gfx-drm's People

Contributors

alarcher avatar citrus-it avatar gwr avatar hrosenfeld avatar pyhalov avatar xen0l avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gfx-drm's Issues

tools/bldenv should be executable

In oi-userland, a copy of tools/bldenv is made during the build -- but it seems like it is not actually modified, just made executable. Could we just make it executable within the repository, like it now is within illumos-gate? (as of illumos bug 11224)

Support for Intel GPUs is outdated

Support for Intel GPUs have been outdated by many years; Broadwell and later isn't supported at all even after 7 years. The rest of the Unix open source operating system projects is catching up to upstream Linux GPU support meanwhile.

At least update the support of Intel GPUs to at least Skylake.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.