[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwin
Subject:    Re: Review Request: Allow the user to rearm OpenGLIsUnsafe KWIn
From:       Thomas_Lübking <thomas.luebking () web ! de>
Date:       2011-04-10 11:32:41
Message-ID: 20110410113241.12938.90684 () vidsolbach ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


> On April 10, 2011, 7:30 a.m., Martin Gräßlin wrote:
> > Very good idea. I was thinking about the same last week.
> > 
> > The UI currently has a problem: The text does not adjust to the layout. Very \
> > noticable when resizing the systemsettings window. 
> > What might work better: have you ever seen the Akonadi configuration interfaces \
> > when Akonadi is not running? They put a nice overlay blocking everything over the \
> > UI, an error icon, "Akonadi is not running" and  a button to enable. I think we \
> > could do the same with the explanation message, a button to re-enable and one to \
> > switch to XRender. 
> > In general I think we should get input from kde-usability on that one. If you \
> > agree I would send a mail to them. 
> > Btw I tried it and desktop effects did not start because it was on enabled state. \
> > But I think if it crashes, we set enabled to false?

KTitleWidget (was there when i came ;-) has no wrapping or not enabled (by default), \
no idea.

If we want such overlay widget (i principally like the idea) we'd (me...) have to \
rewrite that anyway since it will have to bring it's own layout logics.

Blocking the entire UI may not be sufficient because (not in the OpenGLIsUnsafe case \
but in) general crashing (and thus disabling) could occur because of direct rendering \
or the lanczos filter etc. and then we'd lock out the user from the solution. So i'd \
keep the tab enabled but disable and overlay the first two pages.

And of course i'm ok with comments from the usability team =)

> Btw I tried it and desktop effects did not start because it was on enabled state. \
> But I think if it crashes, we set enabled to false?
I guess that reads: "you forgot to ensure to enable compositing on start, because \
otherwise the button does not enable it"? - correct ;-)


> On April 10, 2011, 7:30 a.m., Martin Gräßlin wrote:
> > kwin/compositingprefs.cpp, lines 108-116
> > <http://git.reviewboard.kde.org/r/101061/diff/1/?file=14034#file14034line108>
> > 
> > We should get some feedback from usability team. I fear this is too techy and too \
> > much information and becomes a click through. 
> > Maybe just something like:
> > "KWin recognized that your graphics driver is unstable and has deactivated \
> > desktop effects. Reenabling might lead to data loss!"

I'd in any case prefer a direct instruction to save ones data, because "might lead to \
data loss" (on my hard disk?) is unnecessarily frightening (to me)


> On April 10, 2011, 7:30 a.m., Martin Gräßlin wrote:
> > kwin/kcmkwin/kwincompositing/main.ui, lines 56-60
> > <http://git.reviewboard.kde.org/r/101061/diff/1/?file=14037#file14037line56>
> > 
> > The button looks strange with that much text. Just an idea: use the "bomb" icon \
> > on the button and do something like KMail 2 did in the first alpha state. They \
> > replaced the "OK" by "Lose data". What I would like is a "I know what I'm doing" \
> > button, but again I think we need input from usability team.

Irony is nice for dev previews but i guess would quite confuse the average user. \
Ultimately we want them to click the button once their drivers are in usable shape...


- Thomas


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/101061/#review2535
-----------------------------------------------------------


On April 8, 2011, 6 p.m., Thomas Lübking wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/101061/
> -----------------------------------------------------------
> 
> (Updated April 8, 2011, 6 p.m.)
> 
> 
> Review request for kwin.
> 
> 
> Summary
> -------
> 
> - Allow the user to rearm OpenGLIsUnsafe KWIn autocrash protection
> - Add a usable "doesn't work why" info
> - WARN! the user about clicking the rearm button.
> - Merge "OpenGLIsUnsafe" and "CheckIsSafe" (they did the same for the compositor \
>                 and the active screen edges), picking the less generic term.
> - Move the entire checking into CompositingPrefs, which now knows that \
> "openGLIsBroken()" and doesn't require external protection for "detect()" 
> About distinguishing between "crashes kwin" and "crashes X11": I'm not even sure \
> whether this makes sense (if the user has a new driver he may want to rearm things, \
> expecting that X11 won't crash again - maybe because we told him so...) or it's \
> worth it but a possible way to do it could be to a) make OpenGLIsUnsafe a tenary \
> setting (0,1,2) b) add a parameter to the kwin binary (eg. "--checkBrokenGL")
> c) initially set OpenGLIsUnsafe = 2; and launch "kwin --checkBrokenGL"
> d) have "kwin --checkBrokenGL" sleep a short time, then check the value and if it's \
> "2" (because kwin/compositing kcm crashed) set it down to "1" e) => OpenGLIsUnsafe \
> == 2 means that we successfully killed X11 with glXQuery() ... 
> 
> This addresses bug 250865.
> http://bugs.kde.org/show_bug.cgi?id=250865
> 
> 
> Diffs
> -----
> 
> kwin/composite.cpp 79a8b3c 
> kwin/compositingprefs.h 89c97a7 
> kwin/compositingprefs.cpp 3602384 
> kwin/kcmkwin/kwincompositing/main.h 84742b7 
> kwin/kcmkwin/kwincompositing/main.cpp e8abdfc 
> kwin/kcmkwin/kwincompositing/main.ui baeed1b 
> kwin/kcmkwin/kwinscreenedges/main.cpp 1cbbef1 
> 
> Diff: http://git.reviewboard.kde.org/r/101061/diff
> 
> 
> Testing
> -------
> 
> Yes, i broke my driver (interesting sidenote: "int n = 0; int m = 1/n; n = m;" does \
>                 not crash your code, gcc is a little smarter than this ;-) and \
>                 tried to
> - set the opengl backend (crash)
> a) rearm (crash), then fix my driver and rearm (works)
> b) change to XRender, change back to GL (get a warning, reamr, crash), then fix my \
> driver, change to GL and rearm (works) 
> 
> Thanks,
> 
> Thomas
> 
> 


[Attachment #5 (text/html)]

<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 \
solid;">  <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/101061/">http://git.reviewboard.kde.org/r/101061/</a>
  </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On April 10th, 2011, 7:30 a.m., <b>Martin \
Gräßlin</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  <pre style="white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">Very good idea. I was thinking about the same last week.

The UI currently has a problem: The text does not adjust to the layout. Very \
noticable when resizing the systemsettings window.

What might work better: have you ever seen the Akonadi configuration interfaces when \
Akonadi is not running? They put a nice overlay blocking everything over the UI, an \
error icon, &quot;Akonadi is not running&quot; and  a button to enable. I think we \
could do the same with the explanation message, a button to re-enable and one to \
switch to XRender.

In general I think we should get input from kde-usability on that one. If you agree I \
would send a mail to them.

Btw I tried it and desktop effects did not start because it was on enabled state. But \
I think if it crashes, we set enabled to false?</pre>  </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">KTitleWidget (was there \
when i came ;-) has no wrapping or not enabled (by default), no idea.

If we want such overlay widget (i principally like the idea) we&#39;d (me...) have to \
rewrite that anyway since it will have to bring it&#39;s own layout logics.

Blocking the entire UI may not be sufficient because (not in the OpenGLIsUnsafe case \
but in) general crashing (and thus disabling) could occur because of direct rendering \
or the lanczos filter etc. and then we&#39;d lock out the user from the solution. So \
i&#39;d keep the tab enabled but disable and overlay the first two pages.

And of course i&#39;m ok with comments from the usability team =)

&gt; Btw I tried it and desktop effects did not start because it was on enabled \
state. But I think if it crashes, we set enabled to false? I guess that reads: \
&quot;you forgot to ensure to enable compositing on start, because otherwise the \
button does not enable it&quot;? - correct ;-)</pre> <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On April 10th, 2011, 7:30 a.m., <b>Martin \
Gräßlin</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="http://git.reviewboard.kde.org/r/101061/diff/1/?file=14034#file14034line108" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/compositingprefs.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">bool \
CompositingPrefs::compositingPossible()</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">108</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="k">return</span> <span class="n">i18n</span><span class="p">(</span><span \
class="s">&quot;&lt;b&gt;OpenGL compositing (the default) has crashed KWin in the \
past.&lt;/b&gt;&quot;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">109</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="s">&quot;&lt;p&gt;This is most likely due to a driver bug in very basic \
OpenGL functions and</span><span class="se">\n</span><span \
class="s">&quot;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">110</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="s">&quot;therefore KWin has protected itself with a config entry \
</span><span class="se">\&quot;</span><span class="s">OpenGLIsUnsafe</span><span \
class="se">\&quot;</span><span class="s">&lt;/p&gt;&quot;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">111</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="s">&quot;&lt;p&gt;If you think that you have upgraded to a stable driver \
since then, &quot;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">112</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="s">&quot;you might reset this protection \
but&lt;br&gt;&quot;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">113</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="s">&quot;&lt;b&gt; Beware:&lt;/b&gt;&lt;br&gt;&quot;</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">114</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="s">&quot; - there is a good chance that KWin will immediately crash (and \
restart protected) again.&lt;br&gt;&quot;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">115</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="s">&quot; - there is a rare chance that the entire Desktop crashes. \
&lt;b&gt;Safe your data before doing so!&lt;/b&gt;&lt;/p&gt;&quot;</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">116</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="s">&quot;Alternatively, you might want to select the XRender backend in \
the </span><span class="se">\&quot;</span><span class="s">Advanced</span><span \
class="se">\&quot;</span><span class="s"> tab.&quot;</span><span \
class="p">);</span></pre></td>  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">We should get some \
feedback from usability team. I fear this is too techy and too much information and \
becomes a click through.

Maybe just something like:
&quot;KWin recognized that your graphics driver is unstable and has deactivated \
desktop effects. Reenabling might lead to data loss!&quot;</pre>  </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I&#39;d in \
any case prefer a direct instruction to save ones data, because &quot;might lead to \
data loss&quot; (on my hard disk?) is unnecessarily frightening (to me)</pre> <br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On April 10th, 2011, 7:30 a.m., <b>Martin \
Gräßlin</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="http://git.reviewboard.kde.org/r/101061/diff/1/?file=14037#file14037line56" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/kcmkwin/kwincompositing/main.ui</a>  <span style="font-weight: \
normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">56</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">          \
&lt;string&gt;Reset OpenGL support protection.</pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">57</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">58</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
">WARNING:</pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">59</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">Save your \
data, this might crash the Desktop!&lt;/string&gt;</pre></td>  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">60</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">         \
&lt;/property&gt;</pre></td>  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The button looks strange \
with that much text. Just an idea: use the &quot;bomb&quot; icon on the button and do \
something like KMail 2 did in the first alpha state. They replaced the &quot;OK&quot; \
by &quot;Lose data&quot;. What I would like is a &quot;I know what I&#39;m \
doing&quot; button, but again I think we need input from usability team.</pre>  \
</blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Irony is \
nice for dev previews but i guess would quite confuse the average user. Ultimately we \
want them to click the button once their drivers are in usable shape...</pre> <br />




<p>- Thomas</p>


<br />
<p>On April 8th, 2011, 6 p.m., Thomas Lübking wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black \
solid;">  <tr>
  <td>

<div>Review request for kwin.</div>
<div>By Thomas Lübking.</div>


<p style="color: grey;"><i>Updated April 8, 2011, 6 p.m.</i></p>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
                break-word;">- Allow the user to rearm OpenGLIsUnsafe KWIn autocrash \
                protection
- Add a usable &quot;doesn&#39;t work why&quot; info
- WARN! the user about clicking the rearm button.
- Merge &quot;OpenGLIsUnsafe&quot; and &quot;CheckIsSafe&quot; (they did the same for \
                the compositor and the active screen edges), picking the less generic \
                term.
- Move the entire checking into CompositingPrefs, which now knows that \
&quot;openGLIsBroken()&quot; and doesn&#39;t require external protection for \
&quot;detect()&quot;

About distinguishing between &quot;crashes kwin&quot; and &quot;crashes X11&quot;: \
I&#39;m not even sure whether this makes sense (if the user has a new driver he may \
want to rearm things, expecting that X11 won&#39;t crash again - maybe because we \
told him so...) or it&#39;s worth it but a possible way to do it could be to a) make \
OpenGLIsUnsafe a tenary setting (0,1,2) b) add a parameter to the kwin binary (eg. \
&quot;--checkBrokenGL&quot;) c) initially set OpenGLIsUnsafe = 2; and launch \
&quot;kwin --checkBrokenGL&quot; d) have &quot;kwin --checkBrokenGL&quot; sleep a \
short time, then check the value and if it&#39;s &quot;2&quot; (because \
kwin/compositing kcm crashed) set it down to &quot;1&quot; e) =&gt; OpenGLIsUnsafe == \
2 means that we successfully killed X11 with glXQuery() ...</pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">Yes, i broke my driver (interesting sidenote: &quot;int n = 0; int m = \
1/n; n = m;&quot; does not crash your code, gcc is a little smarter than this ;-) and \
                tried to
- set the opengl backend (crash)
a) rearm (crash), then fix my driver and rearm (works)
b) change to XRender, change back to GL (get a warning, reamr, crash), then fix my \
driver, change to GL and rearm (works)</pre>  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=250865">250865</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>kwin/composite.cpp <span style="color: grey">(79a8b3c)</span></li>

 <li>kwin/compositingprefs.h <span style="color: grey">(89c97a7)</span></li>

 <li>kwin/compositingprefs.cpp <span style="color: grey">(3602384)</span></li>

 <li>kwin/kcmkwin/kwincompositing/main.h <span style="color: \
grey">(84742b7)</span></li>

 <li>kwin/kcmkwin/kwincompositing/main.cpp <span style="color: \
grey">(e8abdfc)</span></li>

 <li>kwin/kcmkwin/kwincompositing/main.ui <span style="color: \
grey">(baeed1b)</span></li>

 <li>kwin/kcmkwin/kwinscreenedges/main.cpp <span style="color: \
grey">(1cbbef1)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/101061/diff/" style="margin-left: \
3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>



_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic