View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000489 | Cinelerra-GG | [All Projects] Bug | public | 2020-08-13 03:37 | 2020-09-01 22:40 |
Reporter | Andrew-R | Assigned To | goodguy | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 2020-04 | ||||
Target Version | Fixed in Version | ||||
Summary | 0000489: DRI3 still doesn't work | ||||
Description | Now, I have TWO GPUS in my motherboard, both driven by nouveau (open-source nvidia driver): Motherboard: MSI MS-7693/970A-G46 (MS-7693), BIOS V2.8 01/08/2016 just glxinfo Extended renderer info (GLX_MESA_query_renderer): Vendor: nouveau (0x10de) Device: NV92 (0x606) Version: 20.3.0 Accelerated: yes Video memory: 373MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 3.3 Max compat profile version: 3.3 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.0 OpenGL vendor string: nouveau OpenGL renderer string: NV92 OpenGL core profile version string: 3.3 (Core Profile) Mesa 20.3.0-devel (git-f7e7cf637e) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: and DRI_PRIME=1 glxinfo Extended renderer info (GLX_MESA_query_renderer): Vendor: nouveau (0x10de) Device: NVA3 (0xca3) Version: 20.3.0 Accelerated: yes Video memory: 1023MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 3.3 Max compat profile version: 3.3 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.0 OpenGL vendor string: nouveau OpenGL renderer string: NVA3 OpenGL core profile version string: 3.3 (Core Profile) Mesa 20.3.0-devel (git-f7e7cf637e) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile second card is even faster (after I reclock it manually, automatic reclocking not supported yet): echo 0f > /sys/kernel/debug/dri/1/pstate cat /sys/kernel/debug/dri/1/pstate 03: core 135 MHz shader 270 MHz memory 135 MHz 07: core 405 MHz shader 810 MHz memory 324 MHz 0f: core 550 MHz shader 1340 MHz memory 790 MHz AC DC * AC: core 549 MHz shader 1339 MHz memory 789 MHz Now, for using it like this (with just DRI_PRIME=1 env. variable) I used this xorg.conf minifile, setting DRI3 globally: cat /etc/X11/xorg.conf.d/20-nouveau.conf Section "Device" Identifier "Card0" Driver "nouveau" Option "PageFlip" "1" #Option "AccelMethod" "glamor" Option "DRI" "3" and for X server 1.19.7 it works .... But CinGG set to openGL output produces errors by default (without my dri3_disable patch): cin Cinelerra Infinity - built: Aug 10 2020 09:35:00 git://git.cinelerra-gg.org/goodguy/cinelerra.git (c) 2006-2019 Heroine Virtual Ltd. by Adam Williams 2007-2020 mods for Cinelerra-GG by W.P.Morrow aka goodguy Cinelerra is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. There is absolutely no warranty for Cinelerra. RenderFarmClient::main_loop: client started Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glCopyTexSubImage2D(missing readbuffer, format=GL_RGBA) Mesa: 1 similar GL_INVALID_OPERATION errors Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glCopyTexSubImage2D(missing readbuffer, format=GL_RGBA) Mesa: 1 similar GL_INVALID_OPERATION errors Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glCopyTexSubImage2D(missing readbuffer, format=GL_RGBA) Mesa: 1 similar GL_INVALID_OPERATION errors Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glCopyTexSubImage2D(missing readbuffer, format=GL_RGBA) Mesa: 1 similar GL_INVALID_OPERATION errors Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glCopyTexSubImage2D(missing readbuffer, format=GL_RGBA) Mesa: 1 similar GL_INVALID_OPERATION errors Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glCopyTexSubImage2D(missing readbuffer, format=GL_RGBA) Mesa: 1 similar GL_INVALID_OPERATION errors Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glCopyTexSubImage2D(missing readbuffer, format=GL_RGBA) Mesa: 1 similar GL_INVALID_OPERATION errors Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glCopyTexSubImage2D(missing readbuffer, format=GL_RGBA) Mesa: 26 similar GL_INVALID_OPERATION errors Mesa: User error: GL_INVALID_OPERATION in glReadPixels(no readbuffer) Mesa: User error: GL_INVALID_OPERATION in glDeleteShader Session time: 0:00:50 Cpu time: user: 0:00:24.507 sys: 0:00:02.600 Image in compositor become garbled IF I set fade below 100% (so, no direct path is used) BUT if I disable dri3 it works! LIBGL_DRI3_DISABLE=1 cin Cinelerra Infinity - built: Aug 10 2020 09:35:00 git://git.cinelerra-gg.org/goodguy/cinelerra.git (c) 2006-2019 Heroine Virtual Ltd. by Adam Williams 2007-2020 mods for Cinelerra-GG by W.P.Morrow aka goodguy Cinelerra is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. There is absolutely no warranty for Cinelerra. RenderFarmClient::main_loop: client started Mesa: User error: GL_INVALID_OPERATION in glDeleteShader Session time: 0:00:44 Cpu time: user: 0:00:27.944 sys: 0:00:02.467 It also works with DRI_PRIME=1, so dumb disable probably not very good idea .... Now I also have VDPAU acceleration (via VP3 co-processor on videocard, card itself being 02:00.0 VGA compatible controller: NVIDIA Corporation GT215 [GeForce GT 240] (rev a2) (prog-if 00 [VGA controller]) , but CinGG upset card too much ...most likely bug in mesa/nouveau - something to track separately .... Mplayer works, but may hang on quit, same for ffmpeg. | ||||
Steps To Reproduce | Set your X server to use DRI3 (with opensource drivers) Launch CinGG Load video set video output to openGL set fade below 100% (92% for example) Hit play Image become garbled/ not updating. | ||||
Tags | No tags attached. | ||||
People taking advantage of DRI3, can do a search to find this patch which will fix there problem. | |
GG says there are small gains for getting dri3 going so this may be useful as Andrew indicated so hopefully they can search the BTs and find this patch. | |
Ok, I'll keep this patch for local use (May be other users or you can benchmark dri2 vs dri3 for single card?) | |
OK, gg had time to look at this in detail today. He thinks the following: - it is only applicable to AMD systems that have Radeon drivers - he thinks that a fix would be better to go into xconfig - maybe it works correctly in some situations or it gets fixed, and then it would unnecessarily restrict cinelerra for that user In conclusion, he does not want to apply this patch at this time. Perhaps there is some misunderstanding and if so, please let us know. |
|
patch diff --git a/cinelerra-5.1/cinelerra/main.C b/cinelerra-5.1/cinelerra/main.C index 0def64b7..3f123b98 100644 --- a/cinelerra-5.1/cinelerra/main.C +++ b/cinelerra-5.1/cinelerra/main.C @@ -168,6 +168,15 @@ int main(int argc, char *argv[]) batch_path[0] = 0; deamon_path[0] = 0; Units::init(); + + /* disable dri3 for non_prime, it broke hw effects on nouveau as of 26-08-2020 */ + const char *prime = getenv("DRI_PRIME"); + if (prime) + setenv("LIBGL_DRI3_DISABLE", "0", 1); + else + setenv("LIBGL_DRI3_DISABLE", "1", 1); + + const char *lang = getenv("LANGUAGE"); if( lang ) lang = cstrdup(lang); File::init_cin_path();
dri3_disable_cin51-new.diff (637 bytes)
diff --git a/cinelerra-5.1/cinelerra/main.C b/cinelerra-5.1/cinelerra/main.C index 0def64b7..3f123b98 100644 --- a/cinelerra-5.1/cinelerra/main.C +++ b/cinelerra-5.1/cinelerra/main.C @@ -168,6 +168,15 @@ int main(int argc, char *argv[]) batch_path[0] = 0; deamon_path[0] = 0; Units::init(); + + /* disable dri3 for non_prime, it broke hw effects on nouveau as of 26-08-2020 */ + const char *prime = getenv("DRI_PRIME"); + if (prime) + setenv("LIBGL_DRI3_DISABLE", "0", 1); + else + setenv("LIBGL_DRI3_DISABLE", "1", 1); + + const char *lang = getenv("LANGUAGE"); if( lang ) lang = cstrdup(lang); File::init_cin_path(); |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2020-08-13 03:37 | Andrew-R | New Issue | |
2020-08-18 21:57 | PhyllisSmith | Assigned To | => goodguy |
2020-08-18 21:57 | PhyllisSmith | Status | new => assigned |
2020-08-26 19:52 | Andrew-R | File Added: dri3_disable_cin51-new.diff | |
2020-08-26 19:52 | Andrew-R | Note Added: 0003944 | |
2020-08-30 01:20 | PhyllisSmith | Note Added: 0003947 | |
2020-08-30 01:20 | PhyllisSmith | Status | assigned => feedback |
2020-08-30 01:54 | Andrew-R | Note Added: 0003948 | |
2020-08-30 01:54 | Andrew-R | Status | feedback => assigned |
2020-08-30 04:18 | PhyllisSmith | Note Added: 0003949 | |
2020-08-30 04:19 | PhyllisSmith | Status | assigned => resolved |
2020-08-30 04:19 | PhyllisSmith | Resolution | open => fixed |
2020-09-01 22:40 | PhyllisSmith | Status | resolved => closed |
2020-09-01 22:40 | PhyllisSmith | Note Added: 0003961 |