Announcement

Collapse
No announcement yet.

Radeon VRAM Optimizations Coming, But Help Is Needed

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

  • #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