13 Replies Latest reply on Mar 18, 2013 7:52 AM by Meteorhead

    CodeXL 1.1 OpenCL kernel code display

    Meteorhead

      Hi!

       

      First of all big congrats to the first VS2012 capable CodeXL release, been waiting for it for a long time. A welcome sight was to see that OpenCL kernel syntax highlight was also included in the dev tool. However, something is not right with this feature. When I am browsing kernel code, it stutters like crazy. I can scroll around the code 0.5 FPS, which is definately unusable.

       

      While I was installing the installer told me it could not close all applications properly, although it did seem to do just fine. (although I have no idea why it would need to close Explorer and the Bluetooth stack too. I am using Win 8 64-bit)

       

      The kernel file that causes the issue is attached. A fix for this issue would be most welcome (or some advise as to what might cause it).

       

      Thanks in advance,

      Máté

        • Re: CodeXL 1.1 OpenCL kernel code display
          kiranputtur

          Hi Máté,

          CodeXL installer behavior is expected since installer makes registry changes, installs redistributable vc++ runtimes and installs DLL's it is expected that  installer would want to acquire locks on all the resource before it proceeds and you would find this behavior in almost all the installer which changes registry or installs dll's.

           

          Now coming back to stuttering issue with VS 2012 + Win 8 64, I  was trying to reproduce the issue you reported but I am not able to do so, I tried some of the sample kernel that came with AMD APP SDK 2.8 and some other like teapot, but everything worked like a charm for me.  I would definately like to recreate your issue inorder to do so could  you provide me  following info.

          1. Catalyst version,  Display driver version ?

          2. OpenCL Driver runtime. (you can get this through running clinfo in command line)

          3. Please attach host code + kernel code where you saw this issue or if you don't want to share any sample

          app with test code where it is reproduced would be just fine.

          4. GPU used 7xxx series or 6xxx series ? or APU ?

           

          Any other pointer that would be help me in recreating this issue is appreciated.

           

          Thanks
          Kiran Puttur

            • Re: CodeXL 1.1 OpenCL kernel code display
              Meteorhead

              I tried doing a reinstall of CodeXL first, just to make sure, but that did not bring any salvation, so down to info:

               

              1. Catalyst 13.1, Driver version 9.012-121219a-151587C-ATI (as reported by CCC)
              2. Platform runtime: OpenCL 1.2 AMD-APP (1084.4)
              3. Code attached, it's no industrial secret. Unfortunately, there are sheetloads deps (GSL, SFML, SFGUI), so hope you need not compile.
              4. I am using Mobility Radeon HD 5870

               

              The thing that might speed up finding the issue is that every single time I load a project (no matter which one), a CodeXL Error window pops up telling me "Failed to load the project". I can imagine the peoblem lies behind somewhere, but other than the error message, I tried profiling my app and it worked fine.

               

              Cheers,

              Máté

                • Re: CodeXL 1.1 OpenCL kernel code display
                  kiranputtur

                  Thanks Mate,

                  I am looking into it, but I need SFML, GSL and SFGUI libraries to build the app,  I can't find x64bit SFML libraries in web, if you share all the libraries it wil lbe easy for me to repro.

                   

                  Thanks again

                  Kiran Puttur

                    • Re: CodeXL 1.1 OpenCL kernel code display
                      Meteorhead

                      I got prebuilt packages which should be good enough.

                       

                      https://skydrive.live.com/redir?resid=F942CBA43DCB6260!12441&authkey=!AE5W4vth4BqE57I

                       

                      Let me know if you encounter problems.

                        • Re: CodeXL 1.1 OpenCL kernel code display
                          kiranputtur

                          Now I am able to compile but while running I could see the two shaders "gripper_Shaders_vertex.glsl" and vertex2.glsl is spitting out lot of errors, and I cannot get past loadShaders()

                          so this is preventing from hitting clenqueueNDRangeKernel and subsequently debugging the OpenCL kernel.

                           

                           

                            • Re: CodeXL 1.1 OpenCL kernel code display
                              Meteorhead

                              I started ebugging this issue, but did not find what's causing the trouble. On my machine the glCompileShader inside the buildShader does not say any error, howerver the glGetShaderiv reports error code 1, but there is no build log available. The code works funny on linux too. If I place an intentional syntax error inside the shader code, the build log still won't show.

                               

                              This however should have nothing to do with the initial problem I opened the topic. The application need not be built and run for the single gripper_Kernels.cl file to display unbearable slow on my comp. But still, I believe you can safely disregard the message, as the program still works (everything displays correctly even though glGetShaderiv reports there were errors. Strange...)

                               

                              Do you have any idea why the CodeXL error appears on every project load by VS saying "Could not load project file"?

                                • Re: CodeXL 1.1 OpenCL kernel code display
                                  kiranputtur

                                  No Matter what I do, I can't reproduce your issue, even though I am having exact simmilar configuration as yours.

                                  Browsing the kernel works fine, and I don't get  "Could not load project file" message when i load the project,

                                   

                                  I am not sure whether VS2012 has corrupted for some reason or not, btw please look at the thread :

                                  http://devgurus.amd.com/thread/160488

                                  Try changing the indentation setting  (Tools->Options->Text Editor -> C/C++ -> Tabs -> Indenting) from Smart to None

                                    • Re: CodeXL 1.1 OpenCL kernel code display
                                      Meteorhead

                                      Hi!

                                       

                                      I tried changing the indent mode to None, but did not help. I would really make a FRAPS video to prove I'm not messing with you, but FRAPS don't support Win8 yet. (F9 won't start the desktop capture)

                                       

                                      There was absolutely no balck magic in either my Win8 or my VS2012 installation. As I mentioned, I did a clean reinstall of CodeXL too... nothing seems to work. Uninstalling CodeXL, and scrolling works like a charm again. The issue must definately be somewhere inside the extension.

                                       

                                      What sort of issues could cause CodeXL to say the error I mentioned? Does CodeXL have it's own project files at all? Or does it just parse the regular VS2012 .proj files?

                                      • Re: CodeXL 1.1 OpenCL kernel code display
                                        Meteorhead

                                        I have captured a video of what I do to trigger the problem. It is in the same directory on my Skydrive for convenience, that I already shared a link to a few posts earlier. Hope that helps somewhat to see what my problem is.

                                         

                                        Plus, after installation there is a dir on my drive D, which I believe should not be there. There is a single file under D:\VS_INSTALL_FOLDER\Help\CodeXL_Quick_Start_Guide.pdf

                                         

                                        I believe this file must've been installed elsewhere. Strange thing is, I did not ask the installer to install anything on drive D.

                                          • Re: CodeXL 1.1 OpenCL kernel code display
                                            urishomroni

                                            Hi Máté,

                                             

                                            To Address each of your problems:

                                            1. As you guessed, CodeXL uses its own project files for Visual Studio projects in addition to the vc[x]proj files. If you're having trouble with them, please delete all the files that are not .xml files in C:\Users\[username]\AppData\Roaming\AMD\CodeXL - most importantly the .cxlvs ones. It might be that one of them is corrupted or is from an older version causing compatibility issues. If, before deleting it, you could save the cxlvs file for the project that you're having issues with and send it to us for observation, it would be very helpful. Also, if you could send the file C:\Users\[username]\AppData\Local\Temp\CodeXL-[username].log, we could see exactly where the loading failed.

                                             

                                            2. This might be a result of the syntax highlighting - we currently have a tagger in place for *.glsl and *.cl files. The workaround I can think about is renaming those files to another extension, but it will prevent the automatic recognition of kernels from the project file.

                                            It would still cause the issue whenever you steps into a kernel, since the generated temporary file is still a .cl file =/.

                                            If the issue happens with files other than .cl/.glsl files (and when no such files are open), it might not be related to something CodeXL does directly. From the video you sent, it seems to only happen in .cl and .glsl files, the bigger the file the worse the condition.

                                             

                                            3. That would appear to be a problem with our installer, I will pass it along to the people who are in charge of it. Does this file disappear when uninstalling? Is it related to a specific one of the CodeXL features (namely, does it appear when you install CodeXL Standalone, CodeXL VS2010 extension, or CodeXL VS2012 extension?

                                             

                                            Thanks,

                                              • Re: CodeXL 1.1 OpenCL kernel code display
                                                Meteorhead

                                                First of all, thank you Uri for the quick reply. To take things in similar order:

                                                 

                                                1. My problem is, no such files are generated at all. I went under Roaming, and there are only: 2 settings related xml files, and empty Profiles directory, a CSV_FILE_CACHE dir with a gripper dir inside and a one line .csv pointing to the third and last, gripper_ProfilerOutput directory, with a date tagged dir in it with kernel intermediates and binaries stored inside as a result of the one (and successful) trial of the profiler module. Everything went fine, all stats seemes reasonable. But it's no wonder VS can't load the project file, cause there is no such file. Am I doing something awfully wrong here? Does the VS add-on not function on it's own seperate from the standalone version? Forgive me if I understood something wrong, I just got very used to gDEBugger which did work this way out-of-the-box.

                                                 

                                                2. Renaming the file sort of defeats the objective (by hiding the syntax highlight). If I would not want to use syntax highlight, as a workaround I might just edit kernel filse in notepad++. It's equally comfy (though it does feel a little past century having to step outside an IDE to edit source code). Not too painful until the problem is solved. All other files work fine, even when the kernel file is open, just outside focus (as you can see on the video).

                                                 

                                                3. Indeed. Files do go away on uninstall. The single help file is related to the VS2012 addon, and if I install the standalone app as well (in the video I unchecked that part, as I did up until now just to give it a try), this extra directory is also populated with a teapot example project, shaders, kernels and stuff. So yes, the installer is a little messed. I got no VS2010 installed, so I cannot comment on that.

                                                  • Re: CodeXL 1.1 OpenCL kernel code display
                                                    urishomroni

                                                    1. We are now looking into this issue. Are the log files not generated either? Could you try:

                                                    a. Running Visual Studio as an administrator and seeing if that changes anything

                                                    b. Create an empty file named [your project's executable name].cxlvs in the CodeXL user data folder and see if that helps.

                                                     

                                                    2. We have found the issue and it was indeed the tagger running slowly. We have improved its performance, and it will be fixed in the next CodeXL version. From our testing it seems that the larger the CL / GLSL file, the slower it runs, so try breaking the files down into smaller portions if possible.

                                                     

                                                    3. Our installer team is looking into this issue.

                                                     

                                                    Thanks for your cooperation,

                                                      • Re: CodeXL 1.1 OpenCL kernel code display
                                                        Meteorhead

                                                        Hi!

                                                         

                                                        1.) Running VS as an admin makes no difference. Installing everything in default locations makes no difference either. Neither does cleaning the Roaming directory manually after an uninstall. Creating an empty project file makes no difference also. BTW, installing the standalone application creates the sample teapot .cxl file in the place where I would expect the .cxlvs file to reside also, however this latter is not there. When I open the sample project from inside the CodeXL dropdown menu inside VS, it pops the same error message. It seems as if the .cxlvs file is not even generated for the sample project (or ever).

                                                         

                                                        2.) Sounds good. Eagerly waiting for the fix. In the meantime I'll try to break down my kernel files into smaller chunks.

                                                         

                                                        3.) Waiting for the fix.