View Full Version : how to adjust brightness, contrast, etc... for vidéos or films with open radeodriver?
darkshado
02-02-2009, 03:04 AM
Hi! Everyone!
Well my problem is simple! How to adjust this parameter's with open radeon drivers? Because i try to do this with the player "totem" on ubuntu but dont work. Only work with the ATI FGLRX drivers! Please if someone can help me with that, thanks. My graphics card is ati x1650pro agp.
darkshado
02-02-2009, 05:00 AM
I have to precise something, i have another computer with a ati 9600pro with the open driver "radeon" and everything work fine i cant understand why?
agd5f
02-02-2009, 12:00 PM
Only the video overlay has brightness/contrast/etc. controls right now. Textured video does not support those controls yet. Radeons r1xx-r4xx support both the video overlay and textured video. r5xx and newer only support textured video. No one has implemented controls yet for textured video.
darkshado
02-04-2009, 12:47 AM
ok! Thank agd5f i hope is gonna be soon :)
bridgman
02-04-2009, 03:16 AM
It's open source. It can be tonight if you have time :D
darkshado
02-04-2009, 10:20 AM
Are you serious ? :confused: Or joking?? :o
chaos386
02-04-2009, 11:57 AM
A little of both, methinks: if you knew how to implement it, you could write the code for it yourself since the driver's source is available. :P
bridgman
02-04-2009, 12:14 PM
Yep. I was joking about the "tonight" part, but these are community-developed drivers and nearly all of the X developers got started because there was a bug or missing feature they wanted to see addressed, so they downloaded the code, learned to build it, started asking questions and pretty soon they were submitting their first patch.
I'm not saying it's realistic for you to implement a complete set of controls complete with sliders for your first patch, but I bet you could tweak a few lines of code to hard-code the brightness and contrast you wanted for your system -- and once you have that it would just be a matter of asking a few more questions to hook that code up to the existing controls.
So... maybe 80% serious, 20% joking.
curaga
02-04-2009, 03:21 PM
Bridgman, lately you've been trying to recruit new X devs all over the place.
Does it bear fruit yet? :D
bridgman
02-04-2009, 07:56 PM
I've only talked to a few people so the sample space is tiny, but...
Yes, in the sense of looking at the code rather than just building it, making little changes, maybe applying a patch... one guy changed the text of a message, rebuilt the driver then confirmed the new message appeared in the log, verifying that they were installing the drm correctly and had the right version. That kind of stuff...
No in the sense that nobody has written a new 3D driver overnight, although MostAwesomeDude is setting a good example for the new folks...
I too would be extremely interested in helping to develop these new open-source drivers, but the main problem is that i don't know practically anything about graphics on Linux, let alone drivers :/
I have basic skills on C (like some little loggers from serial port and the like, and some embedded stuff on AVRs), but nothing "real hard-core".
I think the first problem for me is, that i want to really understand the whole concept, ie. how all these pieces fit together (Xorg driver, drm, mesa, Gallium3D and whatnot), but i haven't come across any nice "documentation for dummies" which would explain all the things i need to know to really understand the code and what it does, how, and why.
So any hints on such good documentation? I'd also like to/need to know how these different 2D acceleration architectures work, how the video accel. things work, what kind of data structures are moving around, what kind of APIs or ABIs or whatever are between the different pieces/drivers/stacks, what kind of memory management or whatever is involved (GEM/TTM?) and so on...
As my sig says, i have HD3200 on the 780G chipset, on which i would like to see open-source 2D and video acceleration working. And even more rewarding would be if i actually did some of it myself :)
Would it be completely pointless to learn any older chips first? I have 9000 pro and 9600 pro available also.
So, given enough time and _good_ and easy to follow documentation which does not require (any?) previous knowledge about things, i'd like to believe i could actually do something new. The motivation to learn definitely is there already.
Any tips and info are very much appreciated! :)
bridgman
02-04-2009, 10:51 PM
OK, let's see; here's a quick overview pasted from the "what is atombios and all these drivers" sticky in this forum :
For a full graphics stack you need three different drivers :
1. X driver
- sometimes referred to as DDX
- handles display/modesetting, 2D and video acceleration
- accesses hardware directly for modesetting; acceleration can access hardware directly or use drm driver
- acceleration must go through drm driver if also running 3D
- modesetting is starting to migrate to kernel/drm; for "kernel modesetting" (KMS) the X driver calls drm to set modes
- memory management is done by X driver today but starting to migrate to kernel/drm (GEM, TTM)
- source code in xorg/driver/xf86-video-ati, xorg/driver/xf86-video-radeonhd
2. DRM aka kernel driver
- manages DMA mechanism for feeding commands to GPU, typically ring buffer
- starting to include memory management and modesetting (as these move from X driver to drm)
- comes built into kernel or you can download & install a newer copy
- source code in mesa/drm
3. Mesa aka 3D driver
- originally written for software rendering, accessed via X server ("indirect rendering")
- hardware acceleration added years ago; interface for plugging in hardware drivers
- Mesa itself supports full GL 2.1, most hardware drivers support less
- submits commands to GPU via drm driver (#2 above)
- two modes - "direct" rendering (interface lib calls Mesa directly) or "indirect" rendering (interface lib passes commands to X server, X server calls Mesa)
- when running "direct" rendering the DRI protocols allow 3D and 2D (X) drivers to work together
- when running "indirect" rendering the X server can coordinate everything itself and convert pixmaps to textures for compositing through GL
- Accelerated Indirect GL rendering through X = AIGLX
Gallium vs Mesa
Gallium is a new low-level API developed by Tungsten Graphics, which can either be called directly (using TGSI shader language) or be used as a foundation for building higher level drivers (OpenGL, DirectX etc). Gallium is being "built into" Mesa as a replacement for the existing Mesa hw driver model, among other things.
Next, take a quick look at agd5f's intro to radeon posts; #3 is probably the most important so skim over #1 and #2 until you understand #3.
http://www.botchco.com/agd5f/?p=15
Next, download the r5xx acceleration guide from x.org; keep it around as a reference, it won't make much sense at first. The doc is for a 5xx while you have a 7xx with the 3d engine from 6xx, but it's close enough to get started. Go here http://www.x.org/docs/AMD/ and download the "R5xx Acceleration v1_3.pdf" document. Don't worry if it doesn't make sense yet but take a look at the table of contents and see if anything looks familiar.
Now it's time to try downloading and building a driver yourself. This will probably involve a lot of cursing and downloading a seemingly infinite number of packages, one at a time, in response to each error message. Suddenly it will build correctly and you won't know what to do ;)
Feel free to ask questions. The #radeonhd IRC channel is fine. You won't always get answers but don't worry about it and try again later. Or you can post here (maybe start a new thread) and someone will probably help.
http://www.x.org/wiki/radeonhd
One important thing to understand is that this document tells you how to build the "standard" radeonhd driver which has 2d and video acceleration for 5xx and rs690 chips, not the experimental branch which has 2d and video acceleration for 7xx and the rest of the 6xx chips. Read all this carefully and, as always, ask questions.
Probably best to get that driver built and running before you play with branches. Note that you need only one driver (the X driver, radeonhd) to get display working on your 780, but you need two drivers (X driver plus drm) to get acceleration working.
Finally, if that works, you can try building the branches of radeonhd and drm which include acceleration :
http://www.x.org/wiki/radeonhd%3Ar6xx_r7xx_branch
Installing a drm driver is a bit tricky, but it's a lot easier if you make sure you have uninstalled the fglrx driver AND rebooted if you were using it.
Once you finish all this (which might take a week of spare time in bits and pieces) you will have downloaded source code for drivers into folders on your PC, built the drivers, installed them and be running them. Now you can start making little changes to the code (start by changing a message or something) and see the results.
We don't have a nice easy "this is how to program your r6xx" document yet; there is a doc in the pipe but it's not particularly easy either. Don't be scared by the code, just keep asking questions and be patient 'cause the folks who can give you good answers probably won't have a lot of free time -- but they will at least try to help in small doses.
Good luck ;)
rahman.duran
02-05-2009, 02:15 AM
OK, let's see; here's a quick overview pasted from the "what is atombios and all these drivers" sticky in this forum :
Next, take a quick look at agd5f's intro to radeon posts; #3 is probably the most important so skim over #1 and #2 until you understand #3.
http://www.botchco.com/agd5f/?p=15
Next, download the r5xx acceleration guide from x.org; keep it around as a reference, it won't make much sense at first. The doc is for a 5xx while you have a 7xx with the 3d engine from 6xx, but it's close enough to get started. Go here http://www.x.org/docs/AMD/ and download the "R5xx Acceleration v1_3.pdf" document. Don't worry if it doesn't make sense yet but take a look at the table of contents and see if anything looks familiar.
Now it's time to try downloading and building a driver yourself. This will probably involve a lot of cursing and downloading a seemingly infinite number of packages, one at a time, in response to each error message. Suddenly it will build correctly and you won't know what to do ;)
Feel free to ask questions. The #radeonhd IRC channel is fine. You won't always get answers but don't worry about it and try again later. Or you can post here (maybe start a new thread) and someone will probably help.
http://www.x.org/wiki/radeonhd
One important thing to understand is that this document tells you how to build the "standard" radeonhd driver which has 2d and video acceleration for 5xx and rs690 chips, not the experimental branch which has 2d and video acceleration for 7xx and the rest of the 6xx chips. Read all this carefully and, as always, ask questions.
Probably best to get that driver built and running before you play with branches. Note that you need only one driver (the X driver, radeonhd) to get display working on your 780, but you need two drivers (X driver plus drm) to get acceleration working.
Finally, if that works, you can try building the branches of radeonhd and drm which include acceleration :
http://www.x.org/wiki/radeonhd%3Ar6xx_r7xx_branch
Installing a drm driver is a bit tricky, but it's a lot easier if you make sure you have uninstalled the fglrx driver AND rebooted if you were using it.
Once you finish all this (which might take a week of spare time in bits and pieces) you will have downloaded source code for drivers into folders on your PC, built the drivers, installed them and be running them. Now you can start making little changes to the code (start by changing a message or something) and see the results.
We don't have a nice easy "this is how to program your r6xx" document yet; there is a doc in the pipe but it's not particularly easy either. Don't be scared by the code, just keep asking questions and be patient 'cause the folks who can give you good answers probably won't have a lot of free time -- but they will at least try to help in small doses.
Good luck ;)
Wow, Thanks Bridgman, this is a good roadmap for new fellows who want to contribute but don't know where to start like me :) I am really interested, I have lots of free time until April. But I really doubt on my C language skills on pointers. After developing high level apps on high level languages ( 6 years of Delphi and +3 years of Java), just makes me scare when I see low level C code :)
curaga
02-05-2009, 05:37 AM
This is a really good C intro:
http://www.le.ac.uk/cc/tutorials/c/
darkshado
02-06-2009, 11:35 AM
Sorry guys but i am not a coder but a simple user. Who try to have a way to solve this problem with radeon driver. I like this driver and i dont want to install FGLRX because to much bugs remaining. But i gonna wait and i hope they solve it. the "radeon" coder's are a great team and they do a fantastic job! ;)
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.