Announcement

Collapse
No announcement yet.

Radeon VRAM Optimizations Coming, But Help Is Needed

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by spstarr View Post
    I suspect the CS parser also adds latency, how much I don't know, it has to do checks for validation of command submissions for security and all (does fglrx do this?).

    I would be curious to see if that can be benchmarked also.
    There is no CS parser for Sea Islands. The hardware does the security checks by itself.

    Comment


    • #17
      I got some pre r600 chips, an onboard HD3300 (w. sideport memory, currently deactivated), an older HD3870, a HD5670 (same board as the HD3300) and access to an FM2 APU iirc. A6 5400K or something.
      I'd love to help (esp. because it seems a good way a user can help the free stack development) but I am currently totally overstressed at university. I'll still keep the tab open to remind me if I happen to have more time.
      Last edited by Adarion; 01-12-2014, 04:11 AM.

      Comment


      • #18
        - While radeonsi could be used in theory, it has not been tested, and traces from it are incorrect (they lack much of the cpu statistics).
        Well, what does that mean? Would they be helpful or not?

        Comment


        • #19
          Originally posted by toyotabedzrock View Post
          At the end you say him but the name is more often given to females.
          Sorry to disappoint, no hot girl mesa hacker today

          Originally posted by verde
          I have many glitces with RV630 on Wargame European Escalation.
          That's unrelated to this; please open a bug and attach an apitrace.

          Originally posted by zanny
          Do you want statistics from APUs as well, or just discrete cards? I have an old r600 card that might still work in my junk drawer, but I also have a working 5800k build running radeon.
          Yes, all r600g cards, integrated or not. Doesn't matter if they have dedicated VRAM or if they use system RAM, as that info is not recorded.

          Originally posted by przemoli
          What do I set in that debug env. variable for steam games?
          I believe you need to start the game manually. Here's an example for Metro LL: https://bugs.freedesktop.org/show_bug.cgi?id=71239#c16

          OpenGL ES also counts? LLVM vs no-LLVM backend matter?
          Any API counts, including OpenVG or even the DX9 state tracker. LLVM or no LLVM doesn't matter.

          Originally posted by ChrisXY
          Well, what does that mean? Would they be helpful or not?
          They wouldn't be useful in the current state. I don't have a SI card, so I can't do the SI side code (can't test). Would you like to help finish the SI side, so SI owners can record too?

          Others:
          Thanks to Pontostroy and pre-emptively to Veerappan and Adarion.

          Comment


          • #20
            @bug1

            Seems you didn't remove fglrx completely, and got a corrupted half-state system. TF2 should run much better than that, see http://openbenchmarking.org/result/1...SO-1312029SO20

            Comment


            • #21
              Originally posted by curaga View Post
              They wouldn't be useful in the current state. I don't have a SI card, so I can't do the SI side code (can't test). Would you like to help finish the SI side, so SI owners can record too?
              If you don't need me to know anything about graphics driver programming, sure.
              Well, I can certainly give you ssh access to my laptop if you want, but a second X server with x11vnc doesn't really seem to work well...

              Comment


              • #22
                Originally posted by ChrisXY View Post
                If you don't need me to know anything about graphics driver programming, sure.
                Well, I can certainly give you ssh access to my laptop if you want, but a second X server with x11vnc doesn't really seem to work well...
                You'd need to add a similar function for SI as is done for r600g in the first part of this commit: https://github.com/clbr/mesa/commit/...9637d9d3cea35f

                It's a simple passthrough function with some casts. I can't even compile-test radeonsi ATM (need a more recent LLVM, which takes about an hour to build), so I didn't try to add one yet.

                Comment


                • #23
                  Originally posted by przemoli View Post
                  What do I set in that debug env. variable for steam games?

                  Code:
                  R600_DEBUG=bostats dota2 %command%
                  in the game settings (right click on the game name in your Steam library).

                  Comment


                  • #24
                    Originally posted by curaga View Post
                    You'd need to add a similar function for SI as is done for r600g in the first part of this commit: https://github.com/clbr/mesa/commit/...9637d9d3cea35f

                    It's a simple passthrough function with some casts. I can't even compile-test radeonsi ATM (need a more recent LLVM, which takes about an hour to build), so I didn't try to add one yet.
                    Is it basically this?
                    Code:
                    diff --git a/src/gallium/drivers/radeonsi/r600_resource.c b/src/gallium/drivers/radeonsi/r600_resource.c
                    index 9a0fde4..5d98ff0 100644
                    --- a/src/gallium/drivers/radeonsi/r600_resource.c
                    +++ b/src/gallium/drivers/radeonsi/r600_resource.c
                    @@ -52,8 +52,23 @@ void r600_init_screen_resource_functions(struct pipe_screen *screen)
                            screen->resource_destroy = u_resource_destroy_vtbl;
                     }
                     
                    +static void r600_mapped_use_hint(struct pipe_context *pipe,
                    +                                struct pipe_resource *resource)
                    +{
                    +        // I have no idea but it looks a bit like I should use this
                    +        struct r600_context *rctx = (struct r600_context*)pipe;
                    +        // But what about the r600 common context? Is it completely reused from r600g?
                    +        struct r600_common_context *ctx = (struct r600_common_context*)rctx;
                    +
                    +        // this comes from r600g?
                    +        struct r600_resource *res = r600_resource(resource);
                    +
                    +        ctx->ws->update_bo_stats_cpu(ctx->ws, res->cs_buf);
                    +}
                    +
                     void r600_init_context_resource_functions(struct r600_context *r600)
                     {
                    +        r600->b.b.mapped_use_hint = r600_mapped_use_hint;
                            r600->b.b.transfer_map = u_transfer_map_vtbl;
                            r600->b.b.transfer_flush_region = u_default_transfer_flush_region;
                            r600->b.b.transfer_unmap = u_transfer_unmap_vtbl;
                    The rest looks like it is in shared code between r600g and radeonsi.

                    And it compiles and runs...

                    Does https://anonfiles.com/file/9b17154fe...467c60ea495bb0 look like a good output? (I hope you can even tell the difference)

                    Comment


                    • #25
                      Yes, that's good output. Can you test the latest stats6 updates? If they build for you, then SI is ok too.

                      Comment


                      • #26
                        started SI @8874258

                        Works for me.

                        Could have done without my clueless comments and I guess the cast could be done directly but the compiler will probably see that too.

                        Comment


                        • #27
                          Originally posted by curaga View Post
                          I believe you need to start the game manually. Here's an example for Metro LL: https://bugs.freedesktop.org/show_bug.cgi?id=71239#c16
                          That's ordinary api trace. With your patches it will contain all the needed info? OK.

                          Let's what I can do about that.

                          Comment


                          • #28
                            Originally posted by Espionage724 View Post
                            ...I fail to see how this really matters to the topic at hand or at all, but: http://en.wikipedia.org/wiki/Lauri
                            Because I was thinking about sharing it on G+ and since I tend to post political articles I was thinking maybe the people who push for more female programmers might see and help.

                            I'm not a feminist btw, I just think a bit more diversity would help the open source world.

                            In America Lauri is a feminine name, it was not meant to be an insult.

                            Comment


                            • #29
                              Originally posted by curaga View Post
                              Sorry to disappoint, no hot girl mesa hacker today
                              I'm gay, so that wasn't part of the motivation. ;-)

                              Comment


                              • #30
                                Originally posted by przemoli View Post
                                That's ordinary api trace. With your patches it will contain all the needed info? OK.

                                Let's what I can do about that.
                                No, instead of apitrace you should use the R600_DEBUG=bostats variable. It's just an example in how to pass vars to Steam games.

                                Comment

                                Working...
                                X