LWJGL Stuttering with this game loop.. Any tips?

So I’ve read around and cannot find an answer as to why the rendering is stuttering. I’ve read that using update is slow but I don’t know how to implement that into my game loop.
Also could it be a problem that I am using slick to bind textures to the screen and render them.
Anyway the textured quad seems to stutter even when the fps of the game that is printed out stays the same. Even when I put the targetFPS to Double.MAX_VALUE in the Engine class (see code comments) it still stutters mainly when moving in a specific direction for a while. Normally about 2 seconds or so and it will start, then stop pretty fast but still noticable.
I guess I am really asking, am i using a OK game loop for this situation or do i need to change things. Because in the engine i want the user to be able to specify the TPS and FPS for the game. Also are there some optimizations that i have missed or something? Thanks in advance

Here is the GameLoop:


        running = true;

        long now;
        long lastTime = System.nanoTime();
        double deltaT = 0.0;
        double deltaR = 0.0;
        double tns = 1000000000.0 / Engine.getTargetTPS(); //set to 60.0 (ticks per second) updating
        double rns = 1000000000.0 / Engine.getTargetFPS(); //set to 200.0 (frames per second) rendering
        int tps = 0;
        int fps = 0;
        long timer = System.currentTimeMillis();

        while (running && !Display.isCloseRequested()) {
            now = System.nanoTime();
            deltaR += (now - lastTime) / rns;
            deltaT += (now - lastTime) / tns;
            lastTime = now;

            if (deltaR >= 1.0) {
                render(); //renders the single textured quad on the screen
                Display.update();  //is this a problem?
                deltaR--;
                fps++;
            }

            if (deltaT >= 1.0) {
                tick(); //does the game logic
                deltaT--;
                tps++;
            }

            if (System.currentTimeMillis() - timer >= 1000.0) {
                timer += 1000.0;
                System.out.println("FPS: " + fps + "  TPS:" + tps);
                fps = 0;
                tps = 0;
            }
        }