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










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On listopad 26th, 2016, 7:20 odp. UTC, <b>David Faure</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="https://git.reviewboard.kde.org/r/129399/diff/2/?file=486397#file486397line436" style="color: black; font-weight: bold; text-decoration: underline;">src/widgets/krun.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

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



 
 

 <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">436</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="c1">// Check whether we have a discrete gpu</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Is it needed to do this check more than once?
If this can't change over time, there could be a static enum here (not check yet, present, absent) to avoid making a dbus blocking call every time.</p></pre>
 </blockquote>



 <p>On listopad 28th, 2016, 7:17 dop. UTC, <b>Jan Grulich</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'm not sure how to do that as static variables cannot be mutable thus I need to initialize it immediately and cannot change later. I'm also not able to put it into KRunPrivate as its member variables also cannot be used in KRun static methods. Could you give me a hint what do you mean exactly?</p></pre>
 </blockquote>





 <p>On listopad 28th, 2016, 7:35 dop. UTC, <b>David Faure</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Static variables can definitely be mutable, as long as they are not declared const.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;"><div class="codehilite" style="background: #f8f8f8"><pre style="line-height: 125%"><span></span><span style="color: #008000; font-weight: bold">enum</span> DiscreteGpuCheck { NotChecked, Present, Absent };
static DiscreteGpuCheck s_gpuCheck = NotChecked;
<span style="color: #008000; font-weight: bold">if</span> (s_gpuCheck == NotChecked) {
    <span style="color: #BA2121"><make dbus call></span>
    <span style="color: #BA2121"><set s_gpuCheck to either Present or Absent></span>
}
// <span style="color: #008000; font-weight: bold">use</span> s_gpuCheck here.
</pre></div>
</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">(This is only used in the GUI thread, in KRun, KPropertiesDialog and klauncher, so no mutex needed)</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Possibly this whole code could be in Solid, so that it's only in one place (and so that the dbus call is only made once per process, rather than 2 or 3 times given that this is needed in multiple places). I have no overview on the Solid API though, to be able to say where it would fit best.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Also, KIO depends on Solid, but not klauncher. So maybe klauncher needs its own copy -- there is only one klauncher process so it would do the call only once.</p></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Already tried that, but getting error: ISO C++ forbids in-class initialization of non-const static member ‘KRun::s_gpuCheck’. From what I've read on the internet this will compile maybe on some compilers, but it's not a valid code.</p></pre>
<br />




<p>- Jan</p>


<br />
<p>On listopad 22nd, 2016, 12:13 odp. UTC, Jan Grulich wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDE Frameworks and David Faure.</div>
<div>By Jan Grulich.</div>


<p style="color: grey;"><i>Updated Lis. 22, 2016, 12:13 odp.</i></p>









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


<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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">When running an app using KRun, check whether X-KDE-RunOnDiscreteGpu is set and whether we have a discrete graphics card and set the environment variable accordingly.</p></pre>
  </td>
 </tr>
</table>



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

 <li>src/widgets/krun.cpp <span style="color: grey">(d93b1f2)</span></li>

</ul>

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






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







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